朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
正規表現 キャプチャの番号の付き方





まず名前付きではないキャプチャに左から順番に1,2,…とついていき、次に名前付きのキャプチャについて左から番号が付いていきます。
この規則を知っていれば、サンプルの中のように\1、\2、…という具合に後方から参照することができます。

サンプルコードの注意
正規表現で<!--(\\1)-->と表示されているのは間違いで、</(\\1)>が正しいです。
(VBでは、誤:<!--(\1)--> 正:</(\1)>)

C#

            private string TEXT06 = "サンプル

サンプルです。

本文1
本文2
本文3

"; //入れ子になっていないHTMLタグ Regex r19 = new Regex("<([^>]+)>(?[^<]*)"); 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("<([^>]+)>(?[^<]*)") 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):サンプルです。








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

投稿日時評価コメント