Regex-Tester

Ergebnisse beim Tippen sehen: alle Treffer werden live hervorgehoben und die Capture-Gruppen aufgelistet. Inklusive Kurzreferenz gängiger Muster.

/ /
Gib ein Muster ein – alle Treffer werden hier hervorgehoben

So verwenden Sie den Regex-Tester

Ein regulärer Ausdruck (Regex) ist eine kompakte Syntax zur Beschreibung von Textübereinstimmungsregeln. Er wird überall eingesetzt — Formularvalidierung, Log-Extraktion, Massenersetzung, Datenbereinigung. Aber Regex ist dicht: Ein falsches Zeichen und die Bedeutung kippt vollständig. Ein Werkzeug, das Treffer schon beim Tippen zeigt, spart sehr viel Zeit.

Was Ihnen dieses Werkzeug bietet

  • Live-Hervorhebung: Während Sie das Muster tippen, wird jeder Treffer im Testtext markiert — kein Knopf nötig
  • Trefferliste: jeder gefundene Textausschnitt und seine Position einzeln aufgeführt, leicht gegenzuprüfen
  • Erfassungsgruppen: von Klammern erfasste Teilstrings werden in verschiedenen Farben hervorgehoben, sodass Sie prüfen können, ob die Gruppierung Ihrer Absicht entspricht
  • Fehlermeldungen: Bei falscher Syntax wird gesagt, welche Art Fehler es ist (etwa eine nicht geschlossene Klammer), statt still zu scheitern
  • Spickzettel: Klicken Sie ein gängiges Muster (Telefonnummer, E-Mail, Ausweisnummer usw.) an, um es einzufügen — spart Schreiben und Merken

Was die fünf gängigen Flags bedeuten

  • g global: jeden Treffer finden, statt beim ersten zu stoppen. Beim Testen sinnvoll eingeschaltet zu lassen.
  • i Groß-/Kleinschreibung ignorieren: /abc/i trifft ABC und Abc.
  • m mehrzeilig: lässt ^ und $ den Anfang und das Ende jeder Zeile treffen statt des gesamten Textes. Unverzichtbar für zeilenweise Validierung.
  • s Punkt trifft Zeilenumbruch: standardmäßig trifft . keinen Zeilenumbruch; eingeschaltet trifft . jedes Zeichen inklusive Umbrüchen.
  • u Unicode-Modus: verarbeitet Vier-Byte-Zeichen wie Emoji und seltene Hanzi korrekt. Enthält Ihr Testtext Emoji und die Ergebnisse wirken falsch, schalten Sie das ein.

Ein paar Fallen, in die man tappt

Gierige Quantifizierer. .* ist standardmäßig gierig und trifft so viel wie möglich. <a><b> mit <.*> abzugleichen liefert die ganze Zeichenkette statt zwei Tags. Ändern Sie es zu <.*?> (das Fragezeichen macht es faul) für das gewünschte Verhalten.

Anker und Mehrzeiligkeit. Im Standardmodus trifft ^\d+$ nur, wenn der gesamte Text eine einzige Zahl ist. Für zeilenweise Validierung müssen Sie m einschalten.

Das Escapen vergessen. Einen Regex innerhalb eines JavaScript-Strings zu schreiben bedeutet doppelte Backslashes — ein Telefonmuster wird zu "^1[3-9]\\d{9}$". Das Eingabefeld hier nimmt ein Regex-Literal, also ist ein einzelner Backslash wie in \d richtig.

Formularvalidierung braucht Anker. Nur [0-9]{11} zu schreiben findet auch in abc13800000000xyz eine „Telefonnummer". Für Validierung müssen Sie es mit ^...$ von Anfang bis Ende begrenzen.

Ein Hinweis zur Leistung

Manche Muster lösen katastrophales Backtracking aus. Beispielsweise kann (a+)+b gegen eine lange Folge von aaaa... exponentiell länger brauchen und den Browser einfrieren. Wenn die Seite nicht mehr reagiert, sind meist verschachtelte Quantifizierer die Ursache — schreiben Sie es präziser, etwa als a+b.

Häufige Fragen

Kann ich die Spickzettel-Muster produktiv einsetzen?

Ja, aber passen Sie sie nach Bedarf an. Die Telefonnummer-Regel ändert sich mit der Nummernpolitik und muss aktualisiert werden, wenn neue Vorwahlen vergeben werden. Das vollständige Ausweisnummer-Muster prüft nur das Format und ob das Datum plausibel ist — es verifiziert nicht die letzte Prüfziffer. Und E-Mail ist eine praktische Vereinfachung, die die überwiegende Mehrheit der Fälle abdeckt; ein streng RFC-5322-konformes Muster ist weit komplizierter und meist nicht lohnend.

Warum funktioniert mein Regex in einer anderen Sprache, hier aber nicht?

Dieses Werkzeug nutzt die JavaScript-Regex-Engine, deren Syntax sich von PCRE (PHP, Pythons re) unterscheidet. Drei typische Unterschiede: JavaScript fehlt manche erweiterte Syntax jenseits von (?<name>), es hat keine Bedingungen und keine Rekursion, und es hat keine \A / \z-Anker (verwenden Sie ^ und $). Benannte Gruppen (?<name>...) werden unterstützt.

Wie finde ich Inhalte über Zeilenumbrüche hinweg?

Auf zwei Wegen: Ersetzen Sie . durch [\s\S], oder schalten Sie das Flag s ein. Ersteres ist portabler und funktioniert in praktisch jeder Engine.

Wird der Testtext gespeichert?

Nein. Der gesamte Abgleich passiert im Browserspeicher und wird beim Neuladen der Seite verworfen. Nichts wird hochgeladen.

Verwandte Werkzeuge