Erfassen von Gruppen in Java-Regex
Das Verständnis der Erfassung von Gruppen in Java-Regex kann Ihre Mustervergleichsfunktionen verbessern. Schauen wir uns den von Ihnen bereitgestellten Code genauer an.
Der reguläre Ausdruck „(.)(d )(.)“ besteht aus drei einfangenden Gruppen:
Beim Ausführen dieser Regex tritt ein Problem mit dem in der ersten Gruppe verwendeten Quantifizierertyp auf. Der gierige Quantifizierer () gleicht so viel Text wie möglich ab, was zu unerwarteten Ergebnissen führt. Um dies zu beheben, ersetzen wir ihn durch einen widerstrebenden Quantifizierer (?), der so wenig Zeichen wie möglich übereinstimmt und dennoch die Bedingung erfüllt.
Verbesserter Regex:
String pattern = "(.*?)(\d+)(.*)";
Mit dieser Änderung stimmt die erste Gruppe nicht mehr mit allen verfügbaren Zeichen überein. Stattdessen stoppt es bei der ersten Ziffer und liefert so eine wünschenswertere Ausgabe:
group 1: This order was placed for QT group 2: 3000 group 3: ! OK?
Das Erfassen von Gruppen bietet mehrere Vorteile:
In Java 6 können Gruppen nur durch ihre Reihenfolge referenziert werden. In Java 7 und höher bieten benannte Gruppen jedoch mehr Flexibilität und Benutzerfreundlichkeit.
Das obige ist der detaillierte Inhalt vonDer Titel könnte lauten: Wie funktionieren Erfassungsgruppen in Java-Regex und welche Vorteile haben sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!