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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 \1 referenziert, 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 \b an 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

Ohne das g-Flag (global) findet der reguläre Ausdruck nur das erste Vorkommen im String, alle weiteren werden ignoriert. Aktivieren Sie das g-Flag, wenn Sie alle Übereinstimmungen finden möchten.

Die Grundsyntax ([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.

Nein. Die gesamte Verarbeitung erfolgt im JavaScript Ihres Browsers, und nichts von dem, was Sie eingeben, wird an die Server von toolbase.cc gesendet oder dort gespeichert.

Diese erscheint, wenn der RegExp-Konstruktor von JavaScript einen Syntaxfehler feststellt – etwa eine nicht geschlossene Klammer, einen Quantor (*, +, ?) 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 \().
Tool-kun

Ü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.