我很难找到一个好的资源来解释如何在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>
我尝试过几种从不同网站上找到的“方法”,但结果一直相同。
如何访问在正则表达式中指定的命名捕获组?
<>
会破坏它。在这种情况下,您可以使用(?'link'.*)
代替。虽然与此问题不完全相关,但我是通过Google搜索“.net命名捕获组”而来的,所以我相信其他人也是如此... - rtpHarry不会破坏它。我能够使用
myRegex.GetGroupNames()`集合作为XML元素名称。 - radarbob