Regex Tester
Understand Regex Tester
Dieser Tester lässt einen regulären Ausdruck auf Beispieltext laufen und zeigt jeden Treffer, seine Position und den Inhalt jeder Capture-Gruppe.
How it works
Das Muster wird mit der RegExp-Engine des Browsers kompiliert, was hier geschieht, ist also genau das, was in Node und im Browser geschieht – ECMAScript-Syntax, nicht PCRE oder RE2. Diese Engine arbeitet mit Backtracking: Scheitert ein Zweig, spult sie zurück und probiert die nächste Alternative, und deshalb kann ein Quantor innerhalb eines Quantors, etwa (a+)+$, gegen eine lange nicht passende Zeichenkette exponentiell viele Pfade durchlaufen. Das ist katastrophales Backtracking, und die Abbruchgrenze von zwei Sekunden ist hier dafür da, es abzufangen.
When to use it
- Herausfinden, warum ein Validierungsmuster eine Eingabe ablehnt, die es akzeptieren sollte.
- Felder aus Logzeilen extrahieren, bevor Sie sich auf den Parsing-Code festlegen.
- Die Nummerierung der Capture-Gruppen prüfen, bevor Sie sie in eine Ersetzungszeichenkette einbauen.
- Ein Muster gegen die unangenehmen Fälle testen – leere Zeichenkette, Nicht-ASCII-Text, mehrere Zeilen – statt gegen den Idealfall.
Watch out for
- Der Tester läuft immer mit dem Flag global, damit Sie jeden Treffer sehen. Ihr eigener Code bekommt mit einem nicht-globalen Regex nur den ersten – und ein globaler Regex, der über mehrere Aufrufe hinweg wiederverwendet wird, trägt lastIndex mit sich, weshalb .test() bei derselben Zeichenkette zwischen true und false wechseln kann.
- Ein Muster, das hier Sekunden braucht, braucht auch im Produktivbetrieb Sekunden. Läuft es jemals auf einem Server gegen von Nutzern gelieferte Eingaben, ist das ein Denial-of-Service-Vektor, und ein von Nutzern geliefertes Muster ist noch schlimmer.
- \d, \w und \b sind in JavaScript rein ASCII. Ein aus Python oder Java kopiertes Muster, das sich auf unicode-fähige Klassen stützt, übersieht nicht-englische Eingaben stillschweigend.
- Der Punkt trifft keinen Zeilenumbruch, solange Sie nicht das Flag s ergänzen, und ^ und $ verankern die gesamte Zeichenkette, solange Sie nicht m ergänzen.
Not the right tool for: E-Mail-Adressen zu validieren. Jeder Regex dafür ist entweder falsch oder unlesbar – prüfen Sie auf ein @ mit etwas auf beiden Seiten und schicken Sie dann eine Bestätigungsnachricht.
Frequently Asked Questions
Welche Regex-Variante wird verwendet?
Dieser Tester nutzt die eingebaute RegExp-Engine von JavaScript, die der ECMAScript-Regex-Syntax folgt. Es ist dieselbe Engine, die in Node.js und in Browsern läuft.
Welche Flags werden unterstützt?
JavaScript unterstützt: g (global), i (ohne Beachtung der Groß- und Kleinschreibung), m (multiline), s (dotAll), u (unicode) und y (sticky). Tragen Sie sie im Feld für die Flags ein.
Wie verwende ich Capture-Gruppen?
Verwenden Sie Klammern für Capture-Gruppen: (\w+). Benannte Gruppen schreiben sich (?<name>\w+). Die Ergebnisse zeigen sowohl die nummerierten als auch die benannten Gruppenwerte.
How to Use Regex Tester
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.