„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie funktionieren Erfassungsgruppen in regulären Java-Ausdrücken?

Wie funktionieren Erfassungsgruppen in regulären Java-Ausdrücken?

Veröffentlicht am 17.11.2024
Durchsuche:402

How do Capturing Groups Work in Java Regular Expressions?

Grundlegendes zum Erfassen von Java-Regex-Gruppen

In diesem Codeausschnitt verwenden wir die Bibliothek für reguläre Ausdrücke (Regex) von Java, um Teile einer Zeichenfolge zu extrahieren. Der reguläre Ausdruck ist definiert als „(.)(\d )(.)“, wobei:

  • (.*): Entspricht einer beliebigen Anzahl beliebiger Zeichen vor der nächsten Gruppe .
  • (\d ): Entspricht einer beliebigen Anzahl von Ziffern nach der vorherigen Gruppe.
  • (.*): Entspricht einer beliebigen Anzahl beliebiger Zeichen nach der vorherigen Gruppe.

Regex-Ausführung

Wenn der reguläre Ausdruck für die Zeichenfolge „Diese Bestellung wurde für QT3000 aufgegeben! OK?“ ausgeführt wird, werden die folgenden Ergebnisse erzeugt:

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000

Gierige Quantifizierer verstehen

Der im regulären Ausdruck verwendete Standardquantifizierer ist gierig, was bedeutet, dass er so viele Zeichen wie möglich abgleicht, um die nächste Gruppe zu erfüllen. In diesem Fall stimmt „.*“ mit der gesamten Zeichenfolge überein, bis die erste Ziffer gefunden wurde, und lässt keine Zeichen für die dritte Gruppe übrig.

Verwendung widerstrebender Quantifizierer

Zur Übereinstimmung Um nur die erforderlichen Zeichen anzuzeigen, können wir einen Quantifizierer verwenden, der durch ein Fragezeichen gekennzeichnet ist. Das Ersetzen von „(.)“ durch „(.?)“ entspricht der kleinstmöglichen Anzahl an Zeichen, was zu der folgenden Ausgabe führt:

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000

Vorteile der Erfassung von Gruppen

Die Erfassung von Gruppen ermöglicht es uns, bestimmte Teile einer passenden Zeichenfolge für die weitere Verwendung zu extrahieren. In diesem Beispiel können wir über die „group()“-Methode des „Matcher“-Objekts auf den übereinstimmenden Wert jeder Gruppe zugreifen, wie im folgenden Codeausschnitt gezeigt:

Pattern pattern = Pattern.compile("(.*?)(\\d )(.*)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
    System.out.println("group 1: "   matcher.group(1));
    System.out.println("group 2: "   matcher.group(2));
    System.out.println("group 3: "   matcher.group(3));
}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3