Heim > Backend-Entwicklung > C++ > Wie verwenden .NET reguläre Ausdrücke aus Balancegruppen, um verschachtelte Strukturen zu bewältigen?

Wie verwenden .NET reguläre Ausdrücke aus Balancegruppen, um verschachtelte Strukturen zu bewältigen?

DDD
Freigeben: 2025-01-29 22:16:10
Original
430 Leute haben es durchsucht

.NET regelmäßiger Ausdruck im regulären Ausdruck: Die Waffe der Handhabung verschachtelter Strukturen

In diesem Artikel wird die einzigartigen Merkmale der Balance -Gruppen der .NET -Expressionsmotor der regulären Expression erläutert, die mehrere Instanzen der doppelten Gruppe im regulären Ausdrucksmodus des Erfassung und des Betriebs ermöglicht.

Gruppe wiederholen

Im Gegensatz zu anderen regulären Expressionsmotoren ermöglichte .NET den Zugriff auf mehrere Erfassungsergebnisse derselben Capture -Gruppe. Zum Beispiel:

<code>(.)+</code>
Nach dem Login kopieren
Bewerben Sie sich auf die Zeichenfolge "ABCD":

  • .NET Die reguläre Expression Engine hat alle vier Capture (jeweils eines jeden Zeichens) in einem Stapel gespeichert.

  • Die erste Gruppe enthält diese Erfassung:

    CaptureCollection

    0: "a"
    • 1: "B"
    • 2: "C"
    • 3: "D"
  • Balance Group
Balance Group zeigt

an, wodurch die Erfassung selektiv aus dem Stapel entfernen kann. Bei der Begegnung einer Balance -Gruppe wird überprüft, ob im Stapel der angegebenen Gruppe eine Erfassung vorliegt. Wenn ja, taucht die letzte Aufnahme (entfernt) aus dem Stapel der Gruppe auf.

Betrachten Sie beispielsweise den folgenden regulären Ausdruck: (?<name>)

Diese reguläre Ausdrucksübereinstimmung besteht aus zwei Wörtern, die durch nicht -Wort -Zeichen getrennt sind.
<code>(?<word>\w+)\W+(?<-word>\w+)</code>
Nach dem Login kopieren
    Die Balance Group wird in dem Stapel entfernt, der vom ersten
  • erstellt wurde.
  • (?<-word>) Bedingungsmodus (?<word>) Bedingungsmodus, geschrieben als
  • , kombiniert mit der Balance -Gruppe. Durch die Verwendung des Verhaltens des leeren Stapels der Balance -Gruppe ermöglicht der Zustandsmodus kompliziertere Muster, basierend darauf, ob der Stapel der angegebenen Balance -Gruppe leer ist.

beispielsweise überprüft die folgende reguläre Ausdrucksüberprüfung, ob die Klammern der Zeichenfolgen korrekt gepaart sind:

(?(condition)truePattern|falsePattern)

Es drückt jede linke Klammer in den Stapel und holt jede rechte Klammer auf.

Bedingungsmodus Stellen Sie sicher, dass der Stapel am Ende der Zeichenfolge leer ist.
<code>^(?:[^()]|(?<Open>[(])|(?<-Open>[)]))*(?(Open)(?!))$</code>
Nach dem Login kopieren
  • verschachtelte Klammern und erfassen Inhalt
  • Um den Inhalt der verschachtelten Halterung zu erfassen, können Sie (?(Open)(?!$)) Grammatik verwenden. Diese Grammatik:
Die Erfassung aus dem Stapel b;

drücken Sie den Inhalt der Erfassung und die aktuelle Gruppe in den Stapel A.

(?<a-b>) Mit dieser Funktion kann der folgende reguläre Ausdruck nicht nur die Klammungszeichenfolge überprüfen, sondern auch den Inhalt der einzelnen Verschachtelungen erfassen:

  • Balance Group, bedingter Modus und
  • Grammatik bieten leistungsstarke Funktionen für die regelmäßige Ausdrucksanpassung auf hoher Ebene, insbesondere bei der Verarbeitung verschachtelter Strukturen.

Das obige ist der detaillierte Inhalt vonWie verwenden .NET reguläre Ausdrücke aus Balancegruppen, um verschachtelte Strukturen zu bewältigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage