Viele reguläre Motoren unterstützen die Gruppierung. Java stellte diese Funktion in Java7 vor. Die Syntax ähnelt .NET (.NET ermöglicht es, dass Gruppierungen mit demselben Namen im selben Ausdruck angezeigt werden, Java jedoch nicht).
Eine Gruppe zu benennen ist leicht zu verstehen, es bedeutet, die Gruppe zu benennen. Im Folgenden finden Sie eine kurze Demonstration, wie man in Java verwendet und Vorsichtsmaßnahmen verwendet werden.
1. Definieren Sie eine Gruppe namens Name im regulären
(? <Name> x)
Hier ist X der Inhalt, den wir anpassen möchten. Beachten Sie, dass der Name dies nicht wiederholt werden kann und der Name nicht mit einer Nummer beginnen kann!
2. Backreferenzen zum Inhalt, der mit der Namensgruppe übereinstimmt
/k <name>
Beachten Sie, dass Backreferenzen für das sind, was die Gruppe entspricht, nicht für den Ausdruck der Gruppe.
3. In Ersatz finden Sie in der im Gruppennamen erfassten Zeichenfolge
$ {Name}
4.. Lassen Sie die Zeichenfolge von der Namensgruppe erfasst
Gruppe (Zeichenfolge Name)
HINWEIS: Sie können auch Sequenznummern verwenden, um named Captures zu referenzieren. Die Sequenznummern beginnen von 1 und 0 ist das vollständige Übereinstimmungsergebnis des regulären.
Hier ist eine einfache Regel, um das Jahr, Monat und Tag als Beispiel separat zu erhalten:
String S = "2015-10-26"; Muster p = muster.comPile ("(? Matcher M = P.Matcher (s); if (m.find ()) {System.out.println ("Jahr:" + m.group ("Jahr")); // Jahr system.out.println ("Monat:" + m.group ("Monat")); // monat system.out.println ("Tag:" + m.group ("Tag")); // Daily System.out.println ("Jahr:" + M.group (1)); // Die erste Gruppe von System.out.println ("Monat:" + M.group (2)); // die zweite Gruppe von System.out.println ("Tag:" + M.group (3)); // Die dritte Gruppe} system.out.println (s.ReplaceAll ("(? <jahr> // D {4})-(? // Ändern Sie das Datum des Formmonatsantragsformulars in das Tagesmonatsjahresformular Ausgangsergebnis
Jahr: 2015monat: 10day: 26 Jahre: 2015 Monate: 10day: 2626-10-2015
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.