Мне трудно найти хороший ресурс, который объясняет, как использовать именованные группы захвата в 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 именованных групп захвата», так что я уверен, что другие люди тоже ...
<>
не сломает. Я смог использовать myRegex.GetGroupNames()
коллекцию в качестве имен элементов XML.