一致後に名前付きキャプチャ グループの内容にアクセスするには、正規表現オブジェクトを使用する必要があります。
Dim RegexObj As New Regex("(?<quote>['""])(?<text>.*?)\k<quote>")
Result = RegexObj.Match(Subject).Groups("text").Value
これで、キャプチャ グループResult
の内容が含まれます。(?<text>...)
.NextMatch()
複数の一致の場合、最後の一致が見つかるまで呼び出して、結果を反復処理できます。
Dim ResultList As StringCollection = New StringCollection()
Dim RegexObj As New Regex("(?<quote>['""])(?<text>.*?)\k<quote>")
Dim Result As Match = RegexObj.Match(Subject)
While MatchResult.Success
ResultList.Add(Result.Groups("text").Value)
Result = Result.NextMatch()
End While
質問に対する元の回答(グループのキャプチャではなく、後方参照に関するものでした):
後方参照を使用できる状況は 2 つあります。
- 同じ正規表現内で後方参照を参照するには、 を使用します
\k<groupname>
。
- 名前付きグループに一致するテキストを置換テキストに挿入するには、 を使用します
${groupname}
。
例えば、
res = Regex.Replace(subject, "(?<quote>['""])(?<text>.*?)\k<quote>", "*${text}*")
変更されます
This is a "quoted text" and 'so is this'!
の中へ
This is a *quoted text* and *so is this*!