Regex-Tester
Geben Sie ein Muster für einen regulären Ausdruck und eine Teststring ein, um Übereinstimmungen hervorzuheben und die Werte der Erfassungsgruppen aufzulisten. Unterstützt die Flags g/i/m/s/u mit dem nativen RegExp von JavaScript.
Häufig genutzte Regex-Muster
| Verwendung | Muster | Beschreibung |
|---|---|---|
| E-Mail-Adresse | ^[\w.+-]+@[\w-]+\.[\w.-]+$ | Passt auf ein vereinfachtes E-Mail-Format aus Benutzername und Domain, getrennt durch @ (nicht vollständig RFC-konform). |
| Telefonnummer (Deutschland) | ^0\d{2,5}[\s/-]?\d{3,10}$ | Passt auf deutsche Fest- oder Mobilfunknummern, die mit 0 beginnen, mit optionalem Trennzeichen zwischen Vorwahl und Nummer. |
| URL | https?:\/\/[\w.-]+(?:\/[\w\-./?%&=]*)? | Extrahiert URL-Strings, die mit http:// oder https:// beginnen, einschließlich Pfad und Query-Parametern. |
| Postleitzahl (PLZ) | ^\d{5}$ | Passt auf eine fünfstellige deutsche Postleitzahl (PLZ). |
| Hex-Farbcode | ^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$ | Passt auf CSS-Hex-Farben im vollen Format #RRGGBB oder in der Kurzform #RGB. |
| Nur Ziffern | ^[0-9]+$ | Prüft, ob der gesamte String nur aus Ziffern (0-9) besteht. |
Was ist ein Regex-Tester
Ein regulärer Ausdruck (Regex) ist eine kompakte Minisprache, mit der sich Muster in Text suchen, extrahieren und validieren lassen. Aufgaben wie „prüfen, ob dies wie eine gültige E-Mail-Adresse aussieht" oder „nur die IP-Adressen aus einer Protokolldatei herausziehen" lassen sich mit einem einzigen Muster ausdrücken. Der Nachteil: Die Syntax ist dicht und symbollastig, sodass man einem Muster nicht ohne Weiteres ansieht, ob es sich wie gewünscht verhält.
Dieses Tool wertet das eingegebene Muster und den Teststring in Echtzeit mit der nativen RegExp-Engine von JavaScript aus und hebt jede Übereinstimmung direkt im Text gelb hervor. Zusätzlich werden der Wert jeder Erfassungsgruppe, die Gesamtzahl der Treffer und etwaige Syntaxfehler aufgelistet, sodass Sie ein Muster iterativ verfeinern können – anpassen, die Änderung beobachten, erneut anpassen – vollständig im Browser, ohne Code zu schreiben oder eine Laufzeitumgebung aufzusetzen.
Da alles clientseitig mit genau derselben Engine läuft, die auch reguläre Ausdrücke im JavaScript des Browsers, in Formularvalidierungen und in Node.js-Backends antreibt, ist das, was Sie hier sehen, eine originalgetreue Vorschau darauf, wie sich das Muster später in der Produktion verhalten wird. So lässt sich ein kniffliges Muster schnell prüfen, bevor es in echten Code eingefügt wird.
So verwenden Sie den Regex-Tester
-
Regex-Muster eingeben
Geben Sie das zu testende Muster in das obere Feld ein. Die umgebenden Schrägstriche
/ /werden automatisch ergänzt – tippen Sie nur den eigentlichen Musterinhalt. - Benötigte Flags auswählen Aktivieren Sie die Kontrollkästchen g, i, m, s und u nach Bedarf. Lassen Sie das g-Flag aktiviert, wenn Sie alle Übereinstimmungen statt nur der ersten sehen möchten.
- Teststring einfügen Fügen Sie den Text, mit dem abgeglichen werden soll, in das Textfeld darunter ein. Mehrzeiliger Text wird vollständig unterstützt.
- Hervorhebung und Tabelle prüfen Das Ergebnis wird automatisch neu berechnet, während Sie tippen. Übereinstimmende Teilstrings werden gelb hervorgehoben, und die Tabelle darunter listet für jeden Treffer die gesamte Übereinstimmung und den Wert jeder Erfassungsgruppe auf.
- Muster verfeinern Falls die Trefferzahl oder der gefundene Bereich nicht Ihren Erwartungen entspricht, passen Sie Muster oder Flags direkt an und beobachten Sie, wie sich das hervorgehobene Ergebnis ändert.
Tipps für die Nutzung
- Das
/Flags-Feld neben dem Musterfeld zeigt auf einen Blick, welche Flag-Kombination gerade aktiv ist. - Nur die in
()eingeschlossenen Teile zählen als Erfassungsgruppen. Verwenden Sie eine nicht erfassende Gruppe(?:...), wenn Sie nur eine Bedingung gruppieren möchten, ohne die Gruppenliste unnötig zu füllen. - Ohne das g-Flag wird nur die erste Übereinstimmung gefunden. Aktivieren Sie es, wenn Sie alle Vorkommen im Text zählen möchten.
- Die Schaltfläche "Beispiel einfügen" lädt ein Beispiel zur E-Mail-Extraktion – ein guter Ausgangspunkt, um das Verhalten von Erfassungsgruppen zu verstehen.
- Die gesamte Verarbeitung findet vollständig in Ihrem Browser statt – das eingegebene Muster und der Teststring werden nie an einen Server gesendet.
Typische Einsatzszenarien für einen Regex-Tester
Validierungsregeln für Formulare entwerfen
Prüfen Sie hier einen regulären Ausdruck, bevor Sie ihn in ein Formular einbauen: Bestätigen Sie, dass erwartete Eingaben (mit oder ohne Bindestrich, mit Umlauten usw.) akzeptiert werden und fehlerhafte Eingaben korrekt abgelehnt werden.
Felder aus Server-Logs extrahieren
Fügen Sie einen echten Ausschnitt eines Zugriffs- oder Fehlerprotokolls ein und erstellen Sie ein Muster, das nur die benötigten Felder wie IP-Adressen, Zeitstempel oder HTTP-Statuscodes herausfiltert.
CSV- oder Freitextdaten bereinigen
Bevor Sie uneinheitlich formatierte Telefonnummern oder Datumsangaben vereinheitlichen, können Sie mit dem Tool prüfen, welche Zeilen einem bestimmten Muster entsprechen und welche nicht.
Verhalten beim Code-Review überprüfen
Wenn der reguläre Ausdruck eines Kollegen auf den ersten Blick schwer verständlich ist, fügen Sie reale Beispielwerte ein und visualisieren Sie genau, worauf er zutrifft, um die Frage sofort zu klären.
Nebeneffekte beim Bearbeiten eines Musters erkennen
Vergleichen Sie beim Ändern eines bestehenden regulären Ausdrucks die hervorgehobenen Treffer vor und nach der Änderung anhand desselben Teststrings, um sicherzustellen, dass sich das Verhalten nicht unerwartet geändert hat.
Regex-Glossar
- Erfassungsgruppe
- Ein in
()eingeschlossener Teil des Musters. Verwenden Sie sie, wenn Sie einen Teilbereich der Gesamtübereinstimmung statt des gesamten Treffers extrahieren möchten. Die Ergebnistabelle dieses Tools listet den Wert jeder Gruppe unter Gruppe 1, Gruppe 2 usw. auf. - Nicht erfassende Gruppe
- Eine Gruppe in der Form
(?:...). Verwenden Sie sie, wenn Sie Klammern nur benötigen, um eine Bedingung zu gruppieren – so bleibt die Nummerierung Ihrer echten Erfassungsgruppen übersichtlich und die Ergebnisliste besser lesbar. - Rückverweis
- Eine Möglichkeit, den von einer früheren Erfassungsgruppe erfassten Text später im selben Muster erneut zu verwenden. Nummerierte Gruppen werden mit
\1referenziert, benannte Gruppen mit\k<name>. Häufig verwendet, um wiederholte Wörter oder doppelte Token zu erkennen. - Faules (nicht-gieriges) Matching
- Ein direkt nach einem Quantor (wie
*oder+) angehängtes?sorgt dafür, dass so wenig Text wie möglich erfasst wird. Standardmäßig (gieriges Matching) versuchen Quantoren, so viel Text wie möglich zu erfassen – der Unterschied ist wichtig, wenn Sie etwas Eingegrenztes extrahieren möchten, etwa den Inhalt eines einzelnen HTML-Tags. - Lookahead und Lookbehind
- Sammelbegriff für
(?=...)(positiver Lookahead),(?!...)(negativer Lookahead),(?<=...)(positiver Lookbehind) und(?<!...)(negativer Lookbehind). Damit können Sie fordern, dass bestimmter Text in der Nähe vorhanden ist, ohne diesen Text selbst in die Übereinstimmung aufzunehmen. - Zeichenklasse
- Eine in eckigen Klammern zusammengefasste Menge von Zeichen, etwa
[abc]oder[a-z0-9], die auf ein beliebiges einzelnes Zeichen darin passt. Ein^direkt nach der öffnenden Klammer, wie in[^abc], negiert sie im Sinne von „jedes Zeichen außer diesen". - Anker
- Ein Element, das eine Position statt eines tatsächlichen Zeichens bezeichnet.
^verankert am Anfang des Strings (bzw. jeder Zeile bei gesetztem m-Flag),$am Ende und\ban einer Wortgrenze. - Flag
- Eine Option, die verändert, wie das gesamte Muster interpretiert wird. Dieses Tool unterstützt die fünf JavaScript-Flags: g (alle Übereinstimmungen finden), i (Groß-/Kleinschreibung ignorieren), m (mehrzeilig), s (Punkt passt auch auf Zeilenumbrüche) und u (korrekte Unicode-Behandlung).
Häufig gestellte Fragen
[abc], \d, +, * usw.) ist größtenteils identisch, aber die Syntax benannter Gruppen, die Unterstützung von Lookahead/Lookbehind und die verfügbaren Flags unterscheiden sich zwischen den Sprachen im Detail. Dieses Tool folgt der RegExp-Spezifikation von JavaScript und garantiert daher kein identisches Verhalten in anderen Sprachen.*, +, ?) ohne vorangehendes Element oder eine ungültige Zeichenklasse. Die Fehlermeldung gibt meist einen Hinweis, also prüfen Sie die Klammerbalance und das Escaping von Sonderzeichen (wie \. oder \().
Übrigens – Was in einer Regex-Engine im Inneren passiert
Reguläre Ausdrücke gehen auf die Theorie der "regulären Sprachen" zurück, die der Mathematiker Stephen Kleene in den 1950er-Jahren aufstellte. Frühe Unix-Werkzeuge wie der Texteditor ed und der Befehl grep (kurz für "globally search a Regular Expression and Print") übernahmen diese Theorie als praktische Implementierung, was die schnelle Verbreitung des Konzepts in Textverarbeitungswerkzeugen erklärt. Der Name "grep" selbst stammt symbolträchtig von einer Regex-Operation.
Die RegExp-Engine von JavaScript führt den Abgleich intern mit einer Strategie namens Backtracking durch: Sie probiert jedes Element des Musters der Reihe nach und geht bei einem späteren Fehlschlag einen Schritt zurück, um eine Alternative zu versuchen. Diese Flexibilität hat einen Nachteil: Muster wie (a+)+b in Kombination mit einem langen, nicht passenden String können die Anzahl der Versuche exponentiell wachsen lassen – ein Phänomen namens "katastrophales Backtracking", das einen Browser oder Server zum Einfrieren bringen kann. Testen Sie komplexe Muster deshalb immer mit verschiedenen Eingaben, bevor Sie sie im Produktivbetrieb einsetzen.
Ein Regex-Objekt mit dem globalen (g) Flag speichert intern einen Cursor namens lastIndex, und jeder Aufruf von exec() setzt die Suche ab dieser Position fort. Die Wiederverwendung desselben Regex-Objekts für nicht zusammenhängende Suchen kann diesen Cursor in einem unerwarteten Zustand hinterlassen. Deshalb erzeugt dieses Tool jedes Mal eine neue RegExp-Instanz, um zu verhindern, dass ein solcher Restzustand übernommen wird.
Benannte Erfassungsgruppen ((?<name>...)) wurden in ECMAScript 2018 eingeführt und sind ein relativ neues Feature. Eine Gruppe über ihren Namen statt über ihre Nummer anzusprechen, verbessert die Lesbarkeit komplexer Muster erheblich – besonders nützlich beim Parsen von Datumsangaben, wo es wichtig ist zu wissen, wofür jede Gruppe steht.