.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 サイトの他の関連記事を参照してください。