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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 01:27:02130Durchsuche

How Can I Utilize Named Groups in Java Regular Expressions?

Benannte Java-Regex-Gruppen: Eine eingehende Erkundung

Obwohl im java.regex-Paket von Java keine integrierte Unterstützung für benannte Gruppen vorhanden ist Bibliotheken von Drittanbietern bieten eine Lösung für diese Einschränkung.

Java 7-Unterstützung für benannte Gruppen

Ab Java 7 wurden benannte Erfassungsgruppen wie folgt eingeführt Konstrukte:

  • (?erfassender Text): Definiert eine benannte Gruppe „name“.
  • k: Referenziert eine benannte Gruppe „name.“
  • ${name}: Verweist auf erfassten Text in der Ersetzungszeichenfolge eines Matchers.
  • Matcher.group(String name): Ruft erfassten Text von einer benannten Gruppe „Name“ ab.

Alternativen vor Java 7

Vor Java 7 boten mehrere Bibliotheken benannte Gruppenunterstützung:

  • Google benannte Regex : Diese Bibliothek bietet umfangreiche Funktionalität, einschließlich verschachtelter benannter Gruppen und rekursiver Regex-Muster.
  • jregex: Obwohl die Unterstützung eingeschränkt ist, bietet diese Bibliothek dennoch grundlegende benannte Gruppenfunktionen.

Beispiele

Betrachten Sie das folgende Beispiel mit einem benannten Regex-Muster:

String input = "TEST 123";
Pattern pattern = Pattern.compile("(?<login>[\w]+) (?<id>[\d]+)");
Matcher matcher = pattern.matcher(input);
System.out.println("Login: " + matcher.group("login"));
System.out.println("ID: " + matcher.group("id"));

Dies wird Folgendes ausgeben:

Login: TEST
ID: 123

Einschränkungen

Die Unterstützung benannter Gruppen in Java ist auf folgende Weise eingeschränkt:

  • Nur ​​eine benannte Gruppe pro Name. Diese Einschränkung verhindert die Erfassung mehrere Vorkommen derselben benannten Gruppe.
  • Keine Unterstützung für In-Regex-Rekursion. Benannte Gruppen können nicht als Ziel der Rekursion innerhalb des Regex-Musters verwendet werden.

Fazit

Bibliotheken von Drittanbietern bieten robuste benannte Gruppenunterstützung für Java. Mit der Einführung benannter Gruppen in Java 7 verfügen Entwickler nun jedoch über einen schlankeren und standardisierten Ansatz für die Arbeit mit benannten Gruppen in ihren Regex-Mustern.

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