Grundlegendes zu Java-Regex-Erfassungsgruppen
In diesem Codeausschnitt verwenden wir die reguläre Ausdrucksbibliothek (Regex) von Java, um Teile einer Zeichenfolge zu extrahieren. Der reguläre Ausdruck ist definiert als „(.)(d )(.)“, wobei:
Regex-Ausführung
Wenn der Regex 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 in der Regex 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 wird, sodass keine Zeichen für die dritte Gruppe übrig bleiben.
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 geringstmö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
Durch die Erfassung von Gruppen können wir bestimmte Teile einer passenden Zeichenfolge zur weiteren Verwendung 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:
<code class="java">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)); }</code>
Das obige ist der detaillierte Inhalt vonWie funktionieren Erfassungsgruppen in regulären Java-Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!