Heim >Java >javaLernprogramm >Wie kann ich benannte Erfassungsgruppen in regulären Java-Ausdrücken verwenden?

Wie kann ich benannte Erfassungsgruppen in regulären Java-Ausdrücken verwenden?

DDD
DDDOriginal
2024-11-04 22:10:02581Durchsuche

How can I use named capturing groups in Java regular expressions?

Benannte Gruppierung in Java

Das java.regex-Paket in Java unterstützt keine benannte Gruppierung. Java 7 und höher

Java 7 und höher unterstützt jetzt benannte Gruppierung. Benannte Gruppen können definiert werden mit:

Benannte Gruppen können referenziert werden mit:

<code class="java">(?<name>capturing text)</code>

k: Rückreferenzierung einer benannten Gruppe

    Matcher .group(String name): Gibt die erfasste Eingabeteilsequenz gemäß der angegebenen benannten Gruppe zurück
  • ${name} in Matcher.replaceAll(): Verweist auf den Matcher, um die erfasste Gruppe im String
  • Alternativen (für Versionen vor Java 7)

Für Versionen vor Java 7 sind folgende Alternativen verfügbar:

Google benannter Regex

: Eine schlanke Bibliothek, die Unterstützung für benannte Gruppierungen bietet.
  • jregex: Eine funktionsreiche Bibliothek regulärer Ausdrücke, einschließlich Unterstützung für benannte Gruppierungen.
  • Benutzerdefinierte Implementierung

Sie können die benannte Gruppierung auch unterstützen, indem Sie Ihre eigene Version von Regex schreiben. Beispielsweise bietet die Regex2-Bibliothek diese Unterstützung.

Beispiel

Beispiel für einen regulären Ausdruck mit benannter Gruppierung:

Beispiel für Java-Code mit benannter Gruppierung:

(?<login>\w+) (?<id>\d+)
Beispiel für die Verwendung einer benannten Gruppierung zum Ersetzen von Text:

Pattern pattern = Pattern.compile("(?&lt;login&gt;\w+) (?&lt;id&gt;\d+)");
Matcher matcher = pattern.matcher("TEST 123");

if (matcher.find()) {
  String login = matcher.group("login");
  String id = matcher.group("id");
}
Beispiel für die Verwendung einer benannten Gruppierungs-Rückreferenz:

Das obige ist der detaillierte Inhalt vonWie kann ich benannte Erfassungsgruppen in regulären Java-Ausdrücken verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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