Heim >Backend-Entwicklung >C++ >Wie greife ich in .NET Regex auf benannte Erfassungsgruppen zu?
Zugriff auf benannte Erfassungsgruppen in regulären .NET-Ausdrücken
Der Zugriff auf eine benannte Erfassungsgruppe in einem regulären .NET-Ausdruck erfordert die Verwendung des MatchCollection.Groups
-Attributs und die Verwendung des Namens der Erfassungsgruppe als Index. Lassen Sie uns die Probleme beheben, die Sie in Ihrem Code haben:
<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); CaptureCollection cc = mc[0].Captures; MessageBox.Show(cc[0].ToString());</code>
Dieser Code versucht, den Wert der einfangenden Gruppe abzurufen, indem er auf die Captures
-Sammlung zugreift, ruft jedoch nur die gesamte übereinstimmende Zeichenfolge ab. Um auf eine bestimmte benannte Erfassungsgruppe zuzugreifen, müssen Sie das Attribut MatchCollection.Groups
wie folgt verwenden:
<code class="language-csharp">foreach (Match m in mc) { MessageBox.Show(m.Groups["link"].Value); // 将 "link" 替换为任何其他命名捕获组名称 }</code>
Durch die Verwendung des Namens der Erfassungsgruppe (z. B. „Link“) als Index des Attributs MatchCollection.Groups
können Sie den Wert dieser bestimmten benannten Erfassungsgruppe abrufen. In diesem Beispiel ruft der m.Groups["link"].Value
-Ausdruck den Wert der einfangenden Gruppe mit dem Namen „link“ ab.
Das obige ist der detaillierte Inhalt vonWie greife ich in .NET Regex auf benannte Erfassungsgruppen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!