小编典典

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

c#

我很难找到一个很好的资源来解释如何在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>

我已经尝试了在各种网站上找到的其他几种“方法”,但是得到的结果仍然相同。

如何访问我的正则表达式中指定的命名捕获组?


阅读 322

收藏
2020-05-19

共1个答案

小编典典

使用Match对象的组集合,并使用捕获组名对其进行索引,例如

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