正規表現でタグを抜き出すサンプルは以下のようになります。
名前付きキャプチャの<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): m15: m15(sentense):本文2 m15:
m15(sentense): m15: m15(sentense):本文3 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): 'm15: 'm15(sentense):本文2 'm15:
'm15(sentense): 'm15: 'm15(sentense):本文3 'm15:'m15(sentense):
良い | やや良い | 普通 | やや悪い | 悪い |
---|
投稿日時 | 評価 | コメント |
---|