まず名前付きではないキャプチャに左から順番に1,2,…とついていき、次に名前付きのキャプチャについて左から番号が付いていきます。
この規則を知っていれば、サンプルの中のように\1、\2、…という具合に後方から参照することができます。
サンプルコードの注意
正規表現で<!--(\\1)-->と表示されているのは間違いで、</(\\1)>が正しいです。
(VBでは、誤:<!--(\1)--> 正:</(\1)>)
C#
private string TEXT06 = "サンプル サンプルです。
本文1
本文2
本文3
";
//入れ子になっていないHTMLタグ
Regex r19 = new Regex("<([^>]+)>(?[^<]*)(\\1)>");
MatchCollection m19 = r19.Matches(TEXT06);
foreach (Match m in m19)
for (int i = 1; i < m.Groups.Count; i++)
{
this.textBox1.Text += "m19(" + i.ToString() + "):" + m.Groups[i].Value + "\r\n";
}
}
/*結果
m19(1):title
m19(2):title
m19(3):サンプル
m19(1):h1
m19(2):h1
m19(3):サンプルです。
*/
VB.NET
Private TEXT06 As String = "サンプル サンプルです。
本文1
本文2
本文3
"
'入れ子になっていないHTMLタグ
Dim r19 As Regex = New Regex("<([^>]+)>(?[^<]*)(\1)>")
Dim m19 As MatchCollection = r19.Matches(TEXT06)
For Each m As Match In m19
For i As Integer = 1 To m.Groups.Count - 1 Step 1
Me.TextBox1.Text += "m19(" & i.ToString() & "):" & m.Groups(i).Value & vbCrLf
Next
Next
'結果
'm19(1) : title
'm19(2) : title
'm19(3) : サンプル
'm19(1) : h1
'm19(2) : h1
'm19(3):サンプルです。
| 良い | やや良い | 普通 | やや悪い | 悪い |
|---|
| 投稿日時 | 評価 | コメント |
|---|