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:
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));
}
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