Zugriff auf benannte Capture-Gruppen in regulären .NET-Ausdrücken
Bei der Verwendung regulärer Ausdrücke in C# ist es wichtig zu verstehen, wie auf benannte Erfassungsgruppen zugegriffen wird. Auf diese Weise können Sie ganz einfach bestimmte Teile des passenden Textes abrufen.
In Ihrem Beispiel definieren Sie zwei benannte Erfassungsgruppen: „Link“ und „Name“. Allerdings versuchen Sie derzeit, über eine CaptureCollection auf diese Gruppen zuzugreifen, die nur den Zugriff auf unbenannte Gruppen ermöglicht.
Um auf eine benannte Erfassungsgruppe zuzugreifen, müssen Sie die GroupCollection-Eigenschaft des Match-Objekts verwenden. Jedes Match-Objekt enthält eine Sammlung von Gruppen, einschließlich benannter und unbenannter Gruppen. Sie können eine GroupCollection mithilfe des Namens der einfangenden Gruppe indizieren, um die entsprechenden Übereinstimmungen abzurufen.
Das Folgende ist eine modifizierte Version des Codes, die zeigt, wie auf eine benannte Capture-Gruppe zugegriffen wird:
<code class="language-csharp">string page = Encoding.ASCII.GetString(bytePage); Regex qariRegex = new Regex("<td><a href=\"(?<link>.*?)\">(?<name>.*?)</a></td>"); MatchCollection mc = qariRegex.Matches(page); foreach (Match m in mc) { MessageBox.Show(m.Groups["link"].Value); MessageBox.Show(m.Groups["name"].Value); }</code>
Dieser Code durchläuft die Sammlung von Match-Objekten und verwendet für jede Übereinstimmung eine GroupCollection, um auf die Erfassungsgruppen „Link“ und „Name“ zuzugreifen und deren Werte anzuzeigen.
Das obige ist der detaillierte Inhalt vonWie greife ich in einer .NET-Regex auf benannte Erfassungsgruppen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!