首页 >后端开发 >C++ >如何访问 .NET 正则表达式中的命名捕获组?

如何访问 .NET 正则表达式中的命名捕获组?

Barbara Streisand
Barbara Streisand原创
2025-01-12 10:48:42346浏览

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

在.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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn