acento.io
Entwickler-Tool

Regex Tester

Teste JavaScript-Regex in Echtzeit – mit Live-Highlighting, Capture-Group-Inspektion und vollständigem Datenschutz: deine Muster verlassen nie den Browser.

Von Carlos Suárez , Systeminformatiker
Zuletzt aktualisiert:

Was dieser Regex Tester macht

Mit diesem Online-Regex-Tester prüfst du reguläre Ausdrücke direkt im Browser – ohne Installation, ohne Account, ohne dass auch nur ein Zeichen deines Musters oder Teststrings an einen Server gesendet wird. 100% im Browser — deine Daten verlassen nie dein Gerät. Keine Uploads, kein Tracking, keine Server-Logs. Diese deutschsprachige Version zeigt dir Treffer farbig hervorgehoben im Eingabefeld, listet alle nummerierten und benannten Capture-Groups mit Wert und Position auf und meldet fehlerhafte Muster sofort mit einer verständlichen Fehlermeldung. Flags wie g, i, m, s, u und y schaltest du per Klick um – das Ergebnis aktualisiert sich in Echtzeit. Besonders beim Schreiben von Validierungslogik für E-Mail-Adressen, URLs oder Telefonnummern spart ein schneller Online-Regex-Checker viele Minuten Debugging. Das BSI empfiehlt, Eingabevalidierung serverseitig zu doppeln – aber den Entwurf des Musters erledige hier, bevor du ihn in deinen Code überträgst.

Funktionen

  • Live-Highlighting im Eingabefeld. Jeder Treffer wird direkt im Teststring farbig markiert, sodass du auf einen Blick siehst, wie weit ein gieriger Quantifier wie .* tatsächlich greift.
  • Vollständige Capture-Group-Inspektion. Nummerierte Gruppen ((\d+)) und benannte Gruppen ((?<jahr>\d{4})) werden einzeln mit Wert, Index und Länge aufgelistet – kein manuelles Durchzählen mehr.
  • Flag-Toggle mit einem Klick. Schalte g (global), i (case-insensitive), m (multiline), s (dotAll), u (Unicode) und y (sticky) einzeln ein oder aus und beobachte sofort die Auswirkung auf die Trefferliste.
  • Zero-Width-Match-Schutz. Muster wie ^ oder Lookaheads erzeugen Zero-Width-Matches, die ohne Schutzlogik einen Browser-Tab einfrieren können. Der Tester erkennt diese Fälle und bricht sicher ab.
  • Sofortige Fehlermeldungen. Ungültige Muster wie ein nicht geschlossenes [ liefern eine klare Meldung auf Deutsch, statt still zu scheitern – ideal beim Lernen oder beim Debuggen komplexer Ausdrücke.
  • Ergebnis kopieren. Alle gefundenen Matches und Group-Werte lassen sich per Knopfdruck in die Zwischenablage kopieren – praktisch, um Ergebnisse direkt in Code oder Dokumentation einzufügen.

So benutzt du den Regex Tester

Drei Schritte reichen für einen ersten Test – du brauchst keinerlei Vorkenntnisse über Regex-Engines außer JavaScript.

  1. Muster eingeben. Tippe deinen regulären Ausdruck in das Musterfeld, z. B. (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) für ein ISO-Datum. Sonderzeichen wie . oder ( musst du mit \ escapen, wenn du sie literal meinst.
  2. Flags wählen. Aktiviere g, um alle Treffer im String zu finden, oder i, um Groß-/Kleinschreibung zu ignorieren. Die Kombination gm ist typisch für mehrzeilige Log-Dateien aus Systemen in der Zeitzone Europe/Berlin.
  3. Teststring einfügen. Füge den Text ein, den du gegen das Muster prüfen möchtest – etwa eine Logzeile oder einen JSON-String. Das Highlighting erscheint sofort; du musst nicht auf „Testen“ klicken.
  4. Capture-Groups prüfen. Scrolle zur Ergebnistabelle, um year, month und day mit ihren Werten zu sehen. So erkennst du, ob dein Muster wirklich das extrahiert, was du weiterverarbeiten willst.
  5. Ergebnis übernehmen. Kopiere das fertige Muster und binde es in deinen Code ein – z. B. als const re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g; in JavaScript.

Häufige Anwendungsfälle

  • Formulare validieren. Prüfe E-Mail- oder Telefonnummer-Muster, bevor sie in Produktionscode landen. Ein falsches Regex kostet mehr als ein kurzer Test hier – besonders bei Pflichtfeldern in deutschen Behördenformularen.
  • Log-Dateien parsen. Extrahiere IP-Adressen, Zeitstempel oder HTTP-Statuscodes aus Apache- oder Nginx-Logs. Mit dem g-Flag siehst du auf einen Blick, wie viele Zeilen einem Muster entsprechen.
  • Benannte Gruppen für Parser entwickeln. Teste named capture groups wie (?<host>[\w.]+) direkt, bevor du sie in einen Lexer oder einen Daten-Pipeline-Schritt in Frankfurt oder München einbaust. Der [Textvergleich](/de/text-diff/) hilft dir danach, zwei Versionen deines Ausgabeformats gegenüberzustellen.
  • Flag-Kombination vergleichen. Verändert i die Trefferanzahl? Macht s den Punkt zum Zeilenumbruch-Matcher? Schalte Flags einzeln um und beobachte unmittelbar die Auswirkung – ohne Code neu kompilieren zu müssen.
  • Regex vor dem Deployment testen. Bevor ein Muster in eine CI-Pipeline oder einen Build-Schritt wandert, sollte es hier fehlerfrei laufen. Für das Bereinigen von Teststrings (Duplikate, Sonderzeichen) ist der [Duplikate-Entferner](/de/remove-duplicates/) eine nützliche Ergänzung.

Häufig gestellte Fragen

Werden meine Muster oder Teststrings gespeichert?

Nein. Der gesamte Regex-Test läuft in deinem Browser – kein Byte verlässt dein Gerät. Es gibt keinen Server, keine Datenbank und kein Logging. Das gilt auch dann, wenn du sensible Daten wie interne Log-Zeilen oder Passwort-Muster testest.

Welche Regex-Syntax wird unterstützt?

Der Tester verwendet die JavaScript-RegExp-Engine (ECMAScript). Das bedeutet: Unicode-Properties mit \p{} funktionieren mit dem u-Flag, rekursive Muster (wie in PCRE) sind aber nicht möglich. Für MDN — encodeURIComponent oder ähnliche URL-Operationen reicht die JS-Engine vollständig.

Warum friert mein Tab manchmal bei bestimmten Mustern ein?

Manche Muster erzeugen Zero-Width-Matches – etwa reine Anker wie ^ ohne m-Flag auf einem langen String. Ohne Schutzlogik kann das zu einer Endlosschleife führen. Dieser Tester erkennt solche Fälle und bricht den Durchlauf sicher ab, statt den Tab zu blockieren.

Kann ich den Tester auch für Python- oder Java-Regex nutzen?

Für einfache Muster (Zeichenklassen, Quantifier, Gruppen) ist die Übertragbarkeit hoch. Python und Java verwenden PCRE-ähnliche Engines, die in der Basis stark mit JavaScript übereinstimmen. Unterschiede gibt es bei atomaren Gruppen, Possessive Quantifiers und Lookbehind-Länge – diese solltest du in der Ziel-Sprache nochmals verifizieren.

Was ist der Unterschied zwischen `.*` und `.*?`?

Der gierige Quantifier .* frisst so viele Zeichen wie möglich und gibt nur zurück, wenn nötig. Das nicht-gierige .*? hält beim kleinstmöglichen Treffer an. Gerade bei HTML-Parsing führt .* oft dazu, dass ganze Abschnitte statt einzelner Tags gematcht werden – ein häufiger Fehler beim ersten Entwurf eines Regex-Generators.

Wie unterscheide ich numbierte von benannten Capture-Groups?

Nummerierte Gruppen schreibst du als (Muster), benannte als (?<name>Muster). In JavaScript greifst du auf benannte Gruppen über match.groups.name zu. Der Tester zeigt beide Typen in der Ergebnistabelle an – mit Index, Name und gematchtem Wert. Das Highlight-Mapping verwendet intern eine ähnliche Mechanik wie MDN — crypto.getRandomValues für eindeutige IDs pro Match.