Zum Inhalt springen

Regex-Rückverweise im Muster: \n und \k<name>

Rückverweise, ein Schlüsselmerkmal regulärer Ausdrücke, ermöglichen es Entwicklern, zuvor erfasste Gruppen innerhalb des Musters selbst zu referenzieren. In diesem Leitfaden werden wir uns intensiv mit Rückverweisen befassen.

Rückverweise verwenden

In JavaScript verwenden wir einen Backslash gefolgt von einer Zahl, um auf einen bereits matchenden Teil des Musters zu verweisen. Beispielsweise verweist \1 auf die erste erfasste Gruppe, \2 auf die zweite und so weiter. Wir können unseren Mustern auch Namen geben und diese später verwenden.

Sehen wir uns ein Beispiel an:


Output appears here after Run.

In diesem Beispiel verweist \1 auf die erste erfasste Gruppe. Der gesamte Ausdruck matcht daher, wenn ein Wort wiederholt wird, weshalb das Muster "hello hello" matcht.

Benannte Gruppen verwenden

Anstatt Zahlen zu verwenden, können wir unseren Mustern Namen geben. Das macht sie verständlicher. Weitere Informationen finden Sie auf der vorherigen Seite Capturing Groups, auf der wir ebenfalls benannte Gruppen besprochen haben. Hier ist ein einfaches Beispiel:


Output appears here after Run.

In diesem Beispiel ist (?<word>\w+) eine benannte Gruppe. Wir verwenden \k<word>, um später auf diese benannte Gruppe zu verweisen.

Hinweis: Benannte Gruppen und \k<name>-Rückverweise werden in allen modernen Browsern und Node.js-Umgebungen ohne Flags unterstützt.

Erweiterte Anwendungen

Rückverweise können mehr als nur Dinge zu wiederholen. Sehen wir uns ein erweitertes Beispiel an:

Aufeinanderfolgende Ziffern matchen

Wir können Rückverweise verwenden, um eine Ziffer nur dann zu matchen, wenn die unmittelbar folgende Ziffer unterschiedlich ist. Beispiel:


Output appears here after Run.

Hier ist \1 die Ziffer, die wir zuvor gematcht haben. Das Muster matcht eine Ziffer nur, wenn die folgende Ziffer von der erfassten abweicht. Diese Technik ist nützlich zur Validierung von Sequenzen, bei denen benachbarte Zeichen unterschiedlich sein müssen, wie bei bestimmten Passwortregeln oder Datenformaten.

Hinweis: Obwohl leistungsstark, können Rückverweise die Leistung bei großen Strings beeinträchtigen. Einige Regex-Engines haben zudem Einschränkungen bei der Verwendung von Rückverweisen innerhalb von Lookarounds. Testen Sie Muster daher sorgfältig in Ihrer Zielumgebung.

Fazit

Das Verständnis von Rückverweisen in JavaScript-Regulären Ausdrücken hilft uns, erweiterte Textmatch-Aufgaben durchzuführen. Durch das Wissen, wie man sie verwendet, können wir komplexe Probleme leichter lösen. Probieren Sie diese Techniken in Ihren eigenen JavaScript-Projekten aus!

Praxis

Welche der folgenden Aussagen über Rückverweise in JavaScript-Regulären Ausdrücken ist korrekt?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.