我很难找到一个很好的资源来解释如何在 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>
我已经尝试过在各种网站上找到的其他几种“方法”,但我一直得到相同的结果。
如何访问在我的正则表达式中指定的命名捕获组?
使用 Match 对象的组集合,使用捕获组名称对其进行索引,例如
foreach (Match m in mc){ MessageBox.Show(m.Groups["link"].Value); }