朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
正規表現 HTMLのタグを抜き出す





正規表現でタグを抜き出すサンプルは以下のようになります。
名前付きキャプチャの<sentense>のほうは、タグ以外のテキストが入ります。
タグがマッチする方の正規表現についてちょっと解説すると、選択肢が3つありますが、1つ目は属性でダブルクォテーションが使われている場合、 2つ目はシングルクォテーションが使われている場合、最後は他の要素の場合がマッチします。

C#

                private string TEXT061 = "サンプル

サンプルです。

本文1
本文2
本文3

"; Regex r15 = new Regex("(<(\"[^\"]*\"|'[^']*'|[^\"'])*?>)|(?[\\w]+)"); MatchCollection m15 = r15.Matches(TEXT061); foreach (Match m in m15) { this.textBox1.Text += "m15:" + m.Groups[1].Value + "\r\n"; this.textBox1.Text += "m15(sentense):" + m.Groups["sentense"].Value + "\r\n"; } /*結果 m15: m15(sentense): m15: m15(sentense):サンプル m15: m15(sentense): m15:

m15(sentense): m15: m15(sentense):サンプルです m15:

m15(sentense): m15:

m15(sentense): m15: m15(sentense):本文1 m15:
m15(sentense): m15: m15(sentense):本文2 m15:
m15(sentense): m15: m15(sentense):本文3 m15:

m15(sentense): m15: m15(sentense): */

VB.NET

            Private TEXT061 As String = "サンプル

サンプルです。

本文1
本文2
本文3

" Dim r15 As Regex = New Regex("(<(""[^""]*""|'[^']*'|[^""'])*?>)|(?[\w]+)") Dim m15 As MatchCollection = r15.Matches(TEXT061) For Each m As Match In m15 Me.TextBox1.Text += "m15:" & m.Groups(1).Value & vbCrLf Me.TextBox1.Text += "m15(sentense):" & m.Groups("sentense").Value & vbCrLf Next '結果 'm15: 'm15(sentense): 'm15: 'm15(sentense):サンプル 'm15: 'm15(sentense): 'm15:

'm15(sentense): 'm15: 'm15(sentense):サンプルです 'm15:

'm15(sentense): 'm15:

'm15(sentense): 'm15: 'm15(sentense):本文1 'm15:
'm15(sentense): 'm15: 'm15(sentense):本文2 'm15:
'm15(sentense): 'm15: 'm15(sentense):本文3 'm15:

'm15(sentense): 'm15: 'm15(sentense):








良いやや良い普通やや悪い悪い

投稿日時評価コメント