.NET Regex で名前付きキャプチャ グループにアクセスするにはどうすればよいでしょうか? 質問する

.NET Regex で名前付きキャプチャ グループにアクセスするにはどうすればよいでしょうか? 質問する

C# で名前付きキャプチャ グループを使用する方法を説明する適切なリソースを見つけるのに苦労しています。これが私がこれまでに作成したコードです:

string page = Encoding.ASCII.GetString(bytePage);
Regex qariRegex = new Regex("<td><a href=\"(?<link>.*?)\">(?<name>.*?)</a></td>");
MatchCollection mc = qariRegex.Matches(page);
CaptureCollection cc = mc[0].Captures;
MessageBox.Show(cc[0].ToString());

ただし、これは常に完全な行のみを表示します。

<td><a href="/path/to/file">Name of File</a></td> 

さまざまな Web サイトで見つけた他のいくつかの「方法」を試してみましたが、結果は同じままです。

正規表現で指定されている名前付きキャプチャ グループにアクセスするにはどうすればよいでしょうか?

ベストアンサー1

Matchオブジェクトのグループコレクションを使用し、キャプチャグループ名でインデックス付けします。例:

foreach (Match m in mc){
    MessageBox.Show(m.Groups["link"].Value);
}

おすすめ記事