ホームページ >バックエンド開発 >C++ >.NET Regex で名前付きキャプチャ グループにアクセスするにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-12 09:10:41117ブラウズ

How Do I Access Named Capturing Groups in .NET Regex?

.NET 正規表現での名前付きキャプチャ グループへのアクセス

.NET 正規表現で名前付きキャプチャ グループにアクセスするには、キャプチャ グループ名をインデックスとして使用し、MatchCollection.Groups 属性を使用する必要があります。コード内で発生している問題を修正しましょう:

<code class="language-csharp">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());</code>

このコードは、Captures コレクションにアクセスしてキャプチャ グループの値を取得しようとしますが、取得できるのは一致した文字列全体だけです。特定の名前付きキャプチャ グループにアクセスするには、次のように MatchCollection.Groups 属性を使用する必要があります:

<code class="language-csharp">foreach (Match m in mc)
{
    MessageBox.Show(m.Groups["link"].Value); // 将 "link" 替换为任何其他命名捕获组名称
}</code>

キャプチャ グループ名 (「link」など) を MatchCollection.Groups 属性のインデックスとして使用すると、その特定の名前付きキャプチャ グループの値を取得できます。この例では、m.Groups["link"].Value 式は「link」という名前のキャプチャ グループの値を取得します。

以上が.NET Regex で名前付きキャプチャ グループにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。