


Wie erfassen und greifen reguläre Ausdrucksgruppen in C# übereinstimmende Teilzeichenfolgen zu?
Oct 29, 2024 pm 06:48 PMRegulä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:
- matches[0].Groups[0] enthält die gesamte Übereinstimmung, einschließlich der eckigen Klammern: [jsmith]
- matches[0].Groups[1] enthält die erfasster Text in den Klammern: jsmith
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:
- matches[0].Groups[1].Captures ist immer leer.
Zusätzliche Überlegungen
- Gruppe 0: Es ist wichtig zu beachten, dass Gruppe 0 immer die gesamte Übereinstimmung enthält, unabhängig davon, ob Erfassungsgruppen definiert sind.
- Anzahl der Gruppen: Die Anzahl der Gruppen in einer Übereinstimmung mit regulären Ausdrücken hängt von der Anzahl der im Muster definierten Erfassungsgruppen ab. Im bereitgestellten Beispiel gibt es nur eine Erfassungsgruppe, was insgesamt zwei Gruppen ergibt.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

eindeutiger Gebrauch und Phrasenfreigabe

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
