Heim  >  Artikel  >  Java  >  Wie kann ich benannte Capture-Gruppen in Java vor Java 7 verwenden?

Wie kann ich benannte Capture-Gruppen in Java vor Java 7 verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 06:01:01502Durchsuche

How can I use named capture groups in Java before Java 7?

Benannte Gruppen mit regulären Ausdrücken in Java

Pakete für reguläre Ausdrücke haben Einschränkungen

Paket java.regex Das habe ich bestätigt Es gibt keine Unterstützung für benannte Gruppen. Teilen Sie mir daher bitte mit, welche Bibliotheken von Drittanbietern dies unterstützen.

Ich habe mir jregex angesehen, aber die letzte Version war im Jahr 2002 und es funktionierte nicht für Java5 (obwohl ich es sofort ausprobiert habe).

Unterstützung seit Java 7

Java 7 hat Unterstützung für benannte Gruppen hinzugefügt. Die Bausteine ​​zur Unterstützung benannter Capture-Gruppen sind:

  • '(?capturing text)' zur Definition der benannten Gruppe 'name'
  • ' zur Rückreferenzierung der benannten Gruppe 'name' k'
  • '${name}', um auf die erfasste Gruppe in der Ersatzzeichenfolge von Matcher zu verweisen
  • Eingabe, die von der angegebenen „benannten Gruppe“ erfasst wurde „Matcher.group(String name)“, um eine Teilzeichenfolge zurückzugeben

Alternativen vor Java 7 Es gab eine Alternative.

Google benannter Regex

    jregex
  • Regex2-Bibliothek

Regex2-Bibliothek unterstützt benannte Gruppen. Es erweitert sich die zu erstellende Klasse java.util.regex.Pattern.

Beispiel

Eingabezeichenfolge: „TEST 123“

Regulärer Ausdruck: „(?w ) (?

Zugriff:

matcher.group(1) == "TEST"

matcher.group("login") == "TEST"

matcher. name (1) == "login"


Ersetzen:

matcher.replaceAll("aaaaa_$1_sssss_$2____") == "aaaaa_TEST_sssss_123____"

matcher.replaceAll("aaaaa_$ { login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"

Das obige ist der detaillierte Inhalt vonWie kann ich benannte Capture-Gruppen in Java vor Java 7 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