Funktionsweise des JavaScript-Regex-Testers
Der Regex-Tester ermöglicht es, reguläre Ausdrücke für JavaScript direkt im Webbrowser an Beispieltexten zu testen. Das Tool hebt jeden Treffer sowie jede Capture-Gruppe sofort farblich im eingegebenen Test-String hervor. Dadurch lässt sich das Verhalten eines regulären Ausdrucks bei unterschiedlichen Eingabewerten direkt nachvollziehen.
Die Verarbeitung der Daten erfolgt lokal. Sowohl das eingegebene Muster als auch der Test-String werden direkt im Browser getestet. Es wird nichts an BroBroGo übertragen.
Eingabeparameter und Konfiguration
Für die Auswertung benötigt das Tool drei zentrale Eingaben:
- Muster (Pattern): Der reguläre Ausdruck, der getestet werden soll. Ein typisches Beispiel für ein solches Suchmuster ist
\d+zum Auffinden von Ziffernfolgen. - Flags: Optionale Parameter, die das Suchverhalten der Regex-Engine steuern:
- g (Global): Sucht nach allen Übereinstimmungen im gesamten Text, anstatt nach dem ersten Treffer zu stoppen.
- i (Groß-/Kleinschreibung ignorieren): Deaktiviert die Unterscheidung zwischen Groß- und Kleinschreibung.
- m (Mehrzeilig): Bewirkt, dass die Anker
^und$mit dem Anfang und Ende jeder einzelnen Zeile übereinstimmen, anstatt nur mit dem Anfang und Ende des gesamten Strings. - s (Punkt entspricht auch Zeilenumbrüchen): Erlaubt es dem Metazeichen
., auch Zeilenumbruchzeichen zu erfassen.
- Test-String: Der Text, auf den das definierte Muster angewendet wird. Ein Beispiel für den Platzhaltertext ist „Geben Sie hier den Text ein, auf den das Muster angewendet werden soll“.
Ausgabe und Interpretation der Ergebnisse
Nach der Eingabe wertet das Tool den Text aus und stellt die Ergebnisse über verschiedene Anzeigeelemente dar:
- Hervorgehobene Treffer: Der Test-String wird mit farblichen Markierungen für alle gefundenen Übereinstimmungen angezeigt.
- Treffer: Eine detaillierte Liste aller gefundenen Resultate. Wenn im regulären Ausdruck Klammern zur Gruppenbildung verwendet wurden, zeigt das Tool für jeden Treffer die einzelnen Capture-Gruppen unter der Bezeichnung Gruppe
{n}an. - Treffer:
{count}: Gibt die Gesamtzahl der im Text identifizierten Übereinstimmungen an. - Zeichen: Zeigt die Anzahl der Zeichen des eingegebenen Test-Strings an.
Regeln, Grenzwerte und Fehlerbehandlung
Bei der Auswertung gelten feste Regeln und technische Limits, um eine stabile Ausführung im Browser zu gewährleisten:
- Keine Treffer: Wenn das Suchmuster im Text nicht vorkommt, gibt das Tool die Meldung „Keine Treffer.“ aus.
- Syntaxfehler: Bei einem fehlerhaft geschriebenen regulären Ausdruck erscheint der Hinweis „Ungültiger regulärer Ausdruck.“.
- Inaktives Global-Flag: Ist das Flag g nicht ausgewählt, wird ausschließlich der erste Treffer im Text ermittelt und ausgegeben.
- Grenzwerte bei globaler Suche: Wenn das Flag g aktiv ist, sucht das Tool nach maximal 1.000 Treffern. In der Detailansicht werden maximal 100 Trefferkarten abgebildet. Wird dieses Limit überschritten, erscheint der Hinweis „Die ersten
{max}Treffer werden angezeigt.“. - Zurücksetzen: Durch Klicken auf die Schaltfläche „Leeren“ werden alle Eingaben gelöscht, und das Tool zeigt den Status „Geleert.“ an.
- Schutz vor Endlosschleifen: Benötigt die Auswertung eines Musters länger als 2 Sekunden, bricht das Tool den Prozess ab. Es gibt dann die Warnung aus: „Die auswertung dieses Musters dauert zu lange – es könnte sich um ein extrem langsames Muster handeln. Bitte vereinfachen Sie es.“.
Vermeidung von Performance-Problemen (Catastrophic Backtracking)
Ein häufiges Problem bei der Erstellung regulärer Ausdrücke ist das sogenannte fatale Backtracking (Catastrophic Backtracking). Dies tritt auf, wenn ein Muster komplexe, ineinander verschachtelte Wiederholungen (wie beispielsweise (a+)+) enthält und auf einen Text trifft, der fast, aber nicht vollständig auf das Muster passt.
In solchen Fällen muss die Regex-Engine des Browsers exponentiell viele Kombinationen durchprüfen, um festzustellen, dass kein Treffer vorliegt. Dies kann dazu führen, dass der Browser-Tab einfriert. Das Tool schützt die Laufzeitumgebung, indem es solche Prozesse nach 2 Sekunden hart abbricht. Zur Optimierung sollten verschachtelte Quantoren vereinfacht und präzisere Zeichenklassen anstelle von universellen Platzhaltern verwendet werden.
Häufig gestellte Fragen (FAQ)
Ist es sicher, meinen Text hier einzufügen?
Ja. Die Auswertung erfolgt vollständig in Ihrem Browser – es werden keine Daten an BroBroGo gesendet.
Was bedeuten die Flags g, i, m und s?
g findet alle Treffer statt nur den ersten. i ignoriert die Groß-/Kleinschreibung. m bewirkt, dass ^ und $ mit dem Anfang und Ende jeder Zeile übereinstimmen, statt nur mit dem gesamten String. s sorgt dafür, dass der Punkt (.) auch Zeilenumbrüche einschließt.
Warum dauert die Auswertung meines Musters zu lange?
Manche Muster führen zu fatalem Backtracking (Catastrophic Backtracking) – die Regex-Engine probiert dann exponentiell viele Kombinationen aus, was den Browser-Tab einfrieren kann. Dieses Tool bricht die Auswertung nach 2 Sekunden ab, um ein Blockieren der Seite zu verhindern. Versuchen Sie, verschachtelte Wiederholungen wie (a+)+ zu vereinfachen.