Heim > Artikel > Backend-Entwicklung > Wie erfassen und greifen reguläre Ausdrucksgruppen in C# übereinstimmende Teilzeichenfolgen zu?
Reguläre Ausdrucksgruppen in C#: Übereinstimmungsergebnisse verstehen
Betrachten Sie den folgenden C#-Codeblock:
<code class="csharp">var pattern = @"\[(.*?)\]"; var matches = Regex.Matches(user, pattern); if (matches.Count > 0 && matches[0].Groups.Count > 1) ...</code>
Dies Code verwendet einen regulären Ausdruck, um in Klammern gesetzten Text aus einer Benutzereingabezeichenfolge zu extrahieren. Für die Eingabe „Josh Smith [jsmith]“ gibt der Code korrekt die folgenden Ergebnisse zurück:
matches.Count == 1 matches[0].Value == "[jsmith]"
Die folgenden Zeilen werfen jedoch Fragen auf:
matches[0].Groups.Count == 2 matches[0].Groups[0].Value == "[jsmith]" matches[0].Groups[1].Value == "jsmith"
Match Grouping
In regulären Ausdrücken werden Gruppen verwendet, um bestimmte Teile einer Übereinstimmung zu erfassen. Standardmäßig wird die gesamte Übereinstimmung in Gruppe 0 erfasst. Zusätzliche Erfassungsgruppen können mithilfe von Klammern definiert werden.
Im bereitgestellten Code definiert der reguläre Ausdruck eine einzelne Erfassungsgruppe, gekennzeichnet durch (.*?). Diese Gruppe erfasst den Text innerhalb der eckigen Klammern (in diesem Fall jsmith). Somit:
Verschachtelte Gruppen
In komplexeren regulären Ausdrücken ist es möglich, verschachtelte Gruppen zu haben. In diesen Fällen enthält jede Gruppe ihren eigenen Satz von Erfassungen. Allerdings gibt es im angegebenen Code nur eine Gruppierungsebene, also:
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonWie erfassen und greifen reguläre Ausdrucksgruppen in C# übereinstimmende Teilzeichenfolgen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!