Trudno mi znaleźć dobry zasób, który wyjaśnia, jak używać nazwanych grup przechwytywania w języku C #. Oto kod, który mam do tej pory:
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());
Jednak zawsze pokazuje to tylko pełną linię:
<td><a href="/path/to/file">Name of File</a></td>
Eksperymentowałem z kilkoma innymi „metodami”, które znalazłem na różnych stronach internetowych, ale ciągle otrzymuję ten sam rezultat.
Jak mogę uzyskać dostęp do nazwanych grup przechwytywania, które są określone w moim wyrażeniu regularnym?
<>
spowoduje to jej uszkodzenie. W (?'link'.*)
takim przypadku możesz użyć . Nie do końca związane z tym pytaniem, ale wylądowałem tutaj podczas wyszukiwania w Google „.net nazwanych grup przechwytywania”, więc jestem pewien, że inni ludzie też…
<>
will go nie złamie. Udało mi się użyć myRegex.GetGroupNames()
kolekcji jako nazw elementów XML.