
VB.NETで正規表現を使って2つの文字列に囲まれた部分を
取得したいのですが、文字列の先頭と末尾の部分の<BR>の行と
空行を削除したいです。
具体的には対象の文字列が
”ABC
<BR>
<BR>
あいうえお
<BR>
かきくけこ
<BR>
さしすせそ
<BR>
<BR>
<BR>
XYZ”
となっていた場合に
”あいうえお
<BR>
かきくけこ
<BR>
さしすせそ”
を取得したいです。
現在このようになっています。
Public STR As String
Sub Form1_Load
Dim sr As New System.IO.StreamReader("c:\0.html", system.Text.Encoding.Default)
STR = sr.ReadToEnd
TextBox2.Text = "(?<data>.+?)"
End Sub
Sub Button1_Click
Dim A As String = "ABC"
Dim Z As String = "XYZ"
Label1.Text = A & TextBox2.Text & Z
Dim r As New Regex(Label1.Text, RegexOptions.Singleline)
Dim m As System.Text.RegularExpressions.Match
Try
TextBox1.Text = r.Match(STR).Result("${data}")
Catch ex As Exception
Console.WriteLine("Error")
End Try
End Sub
<BR>が<br>や<Br><bR>< br >などにも対応したりと
条件がいろいろありすぎて色々試したのですが、
どうしても分かりませんでした。
申し訳ございませんが、お助け頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
空行を検知する方法は分からないけど、「<BR>が<br>や<Br><bR>< br >など・・・・」は「<\s*[Bb][Rr]\s*>」にマッチするんじゃないかな。
「開きカク括弧が1文字あり、空白(\s)が0文字以上続き、Bまたはbが1文字あり、Rまたはrが1文字あり、空白が0文字以上続き、閉じカク括弧が1文字ある」というパターンになる。「<\s*[/]?[Bb][Rr]\s*>」とすると、</BR>もひっかかるかも。「<\s*[Bb][Rr][/]?\s*>」だと<BR/>もOKかも。全然試していないので色々試行錯誤をしてみてくらはい。
anmochi様ご回答ありがとうございます。
お二人のご回答ともに大変参考になりました。
無事目的の文字列を取得することができました。
ありがとうございました。
No.2
- 回答日時:
行頭がABCではじまってそれに続く<BR>と空行は
^(ABC\s+((<\s*[/]?br[/]?\s*>\s+)*)\s+)
でよさそうです
単なる空行は
^(\s)
行末がXYZで終わってその前にある<BR>と空行は
((<\s[/]?br[/]?\s*>\s+)*)\s+(XYZ)$
といった具合です
これを regexのReplaceにかけてやれば良いようですが
dim sPat as String = "^(ABC\s+((<\s*[/]?br[/]?\s*>\s+)*)\s+)|" _
"^(\s)|((<\s[/]?br[/]?\s*>\s+)*)\s+(XYZ)$"
Dim r As New Regex(sPat, RegexOptions.MultiLine or RegexOptions.IgnoreCase)
TextBox1.Text = r.Replase(STR,"")
といった具合で ・・・
redfox63様ご回答ありがとうございます。
お二人のご回答ともに大変参考になりました。
無事目的の文字列を取得することができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
preg_replace()でマッチ文字列...
-
追伸します。
-
phpで文字列の一部を基準にして...
-
文字列の結合について
-
正規表現。指定文字列を抜き出...
-
DOCOMOの機種判別でみたことな...
-
入力文字に\\マークが入ってい...
-
デザインとテキストを分離しま...
-
URLを見つけたら自動でリンク、...
-
PHPの¥
-
フォームデコード
-
下記PHPの記述
-
冗長コードのfunction化と汎用化
-
htmlソースの中を検索して、
-
VBAのコマンドボタンの文字列の...
-
正規表現の否定先読みについて
-
文章のはじめに「 > 」を付ける
-
ホームページの転送 (SFTP, SCP...
-
入力制限
-
とても初歩的な質問で申し訳な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
文字列の置換をCStringで(C++)
-
文字列の括弧について(初心者)
-
c# string型の変数に、ダブルク...
-
VBSで"をエスケープする文字は?
-
○分から○時間○分に変換
-
入力文字に\\マークが入ってい...
-
mcryptで英数字(12未満)のみに...
-
マクロ関数 #define の効果は何...
-
正規表現
-
VB.NET 文字コード
-
PHPでCSVを出力する際のセルに...
-
PHPでjavascriptを書き出すとき...
-
ヒットする初回のみ置換する方法
-
文字列のアスタリスク置換
-
php 正規表現で、\\マークを取...
-
正規表現について
-
PHP VS Java (パフォーマン...
-
sedでの最短一致の書き方
-
正規表現での記述方法
おすすめ情報