在.NET正则表达式中访问命名捕获组
在C#中使用正则表达式时,理解如何访问命名捕获组至关重要。这允许您轻松检索匹配文本的特定部分。
在您的示例中,您定义了两个命名捕获组:“link”和“name”。但是,您目前尝试使用CaptureCollection访问这些组,而CaptureCollection只提供对未命名组的访问。
要访问命名捕获组,您需要使用Match对象的GroupCollection属性。每个Match对象都包含一个组集合,包括命名组和未命名组。您可以使用捕获组的名称来索引GroupCollection,以检索相应的匹配项。
以下是修改后的代码版本,演示如何访问命名捕获组:
<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); foreach (Match m in mc) { MessageBox.Show(m.Groups["link"].Value); MessageBox.Show(m.Groups["name"].Value); }</code>
此代码遍历Match对象的集合,对于每个匹配项,它使用GroupCollection访问“link”和“name”捕获组并显示其值。
以上是如何访问 .NET 正则表达式中的命名捕获组?的详细内容。更多信息请关注PHP中文网其他相关文章!