Regex Tester

Regex-Tester

Reguläre Ausdrücke bauen und testen mit Live-Hervorhebung der Treffer, Capture Groups und Replace-Modus. JavaScript-Variante, läuft komplett im Browser.

JavaScript / ECMAScript regex (dieselbe Engine, die dein Browser für nativen RegExp nutzt). Es ist ein striktes Superset von POSIX und überschneidet sich für gängige Funktionen stark mit Python re, Java Pattern und PCRE. Worauf zu achten ist: JavaScript unterstützt lookahead/lookbehind, benannte Gruppen (über /(?...)/) sowie die Flags /u und /y. Es unterstützt KEINE possessive Quantoren (a++, a*+), atomic groups ((?>...)) oder branch-reset Groups — die gibt es nur in PCRE.

Nein. Das gesamte Tool ist JavaScript innerhalb dieser Seite. Kompilierung des Musters, Matching und Ersetzung laufen alle im Browser über den nativen RegExp-Konstruktor. Öffne DevTools → Network und schau zu — beim Tippen werden keine Requests abgesetzt. Sicher zum Einfügen von regex-Mustern, die Produktions-Logs, Kunden-E-Mails oder andere Daten matchen, die kein Server-Tool loggen sollte.

/ /
Treffer
Erklärung
Regex-Spickzettel
. Beliebiges Zeichen (außer Zeilenumbruch; mit /s-Flag auch Zeilenumbrüche)
\d Beliebige Ziffer (0-9)
\D Alles außer Ziffern
\w Wortzeichen (a-z, A-Z, 0-9, _)
\W Nicht-Wortzeichen
\s Whitespace (Leerzeichen, Tab, Zeilenumbruch)
\S Kein Whitespace
\b Wortgrenze
^ $ Anfang / Ende der Zeichenkette (oder Zeile, mit /m-Flag)
* Null oder mehr des vorherigen Elements
+ Eins oder mehr des vorherigen Elements
? Null oder eins des vorherigen Elements (optional)
{n,m} Zwischen n und m des vorherigen Elements
(...) capture group — gespeichert in $1, $2, …
(?:...) Non-capture group — nützlich für Alternation ohne Speicherung
(?<n>...) Benannte capture group — referenziert als $<n>
[abc] Zeichenklasse — eines von a, b oder c
[^abc] Negierte Zeichenklasse — jedes Zeichen außer a, b, c
a|b Alternation — entweder a oder b
(?=...) Positive lookahead — gefolgt von
(?!...) Negative lookahead — nicht gefolgt von
(?<=...) Positive lookbehind — vorausgegangen von
(?<!...) Negative lookbehind — nicht vorausgegangen von
$1 $<n> backreference im Ersetzungsstring — nummeriert oder benannt

Warum iKit Regex-Tester

Gebaut für Entwickler, die ein sauberes, schnelles Regex-Playground wollen — ohne Werbung, Pop-ups oder Tracker von Drittanbietern wie bei alten Tools.

Live-Hervorhebung der Treffer

Tippe dein Muster ein und sieh in Echtzeit jeden Treffer im Testtext markiert. capture groups werden daneben mit Indexbereich und Inhalt aufgelistet.

Match + Replace in einem Tool

Wechsle in den Replace-Modus, um das Ergebnis von String.replace vorab zu sehen — mit voller Unterstützung für $1/$2-backreferences, $ für benannte Gruppen und $& für den gesamten Treffer.

Alle sechs JavaScript-Flags

Schalte global, case-insensitive, multiline, dotall, unicode und sticky als Chips um — dieselben Flags wie bei nativem RegExp, keine Überraschungen beim Übertragen ins Code.

Vorlagen für gängige Muster

Ein-Klick-Vorlagen für E-Mail, URL, IPv4, Telefon, Datum, Hex-Farbe und UUID — jeweils mit einem Beispiel-Testtext, damit du genau siehst, was sie matchen.

Eingebauter Spickzettel

Schnellreferenz für Zeichenklassen, Quantoren, Anker, Gruppen und Lookarounds — einklappbar, also da wenn du ihn brauchst, ausgeblendet wenn nicht.

Privacy by Design

Muster, Testtext und Ersetzung bleiben alle in deinem Browser. Nachprüfbar in DevTools → Network: null Requests beim Tippen. Sicher für Produktions-Logs und Kundendaten.

Wie regex-Matching tatsächlich funktioniert

Reguläre Ausdrücke sehen aus wie Zeilenrauschen, aber die Engine dahinter ist überschaubar.

  1. 1

    Muster kompilieren

    Wenn du /foo/ in JavaScript schreibst oder new RegExp('foo') aufrufst, parst die Engine dein Muster in einen internen Automaten — eine Zustandsmaschine, die durch den Eingabetext läuft. Die Kompilierung passiert einmal; das Matching ist schnell.

  2. 2

    Eingabestring durchlaufen

    Die Engine bewegt einen Cursor durch deinen Testtext. An jeder Position versucht sie, dem Pfad des Automaten zu folgen. Ein Zeichen, das den aktuellen Zustand erfüllt, schiebt beide Cursor weiter; ein Mismatch springt zurück zu einem Entscheidungspunkt und probiert einen anderen Zweig.

  3. 3

    Capture Groups

    Klammern im Muster öffnen eine capture group: Wenn die Engine darin erfolgreich matcht, merkt sie sich das Gematchte, indiziert als $1, $2 usw. Benannte Gruppen (?<n>...) werden unter einem Namen abgelegt. Diese Captures erscheinen im groups-Feld des Match-Objekts.

  4. 4

    Ersetzen mit Backreferences

    String.replace(regex, replacement) läuft dieselben Treffer durch, fügt aber statt sie zurückzugeben den Ersetzungsstring ein. $1 in der Ersetzung ist der wörtlich von Gruppe 1 erfasste Wert — so kannst du 2024-01-15 mit einem einzigen regex zu 15/01/2024 umformatieren.

Häufige regex-Aufgaben

Reale Situationen, in denen du zu einem Regex-Tester greifst.

E-Mail- oder URL-Formate validieren

Baue ein Muster im Tester, füge Beispieleingaben ein (die echten und die Edge Cases) und sieh genau, was matcht, bevor du es in deine Formularvalidierung übernimmst. Die Vorlagen geben dir einen vernünftigen Startpunkt, der 95 % der realen Eingaben abdeckt.

Logdaten bereinigen

Eine Logdatei mit gemischten Zeitstempeln, ANSI-Farbcodes und IP-Adressen, die du anonymisieren willst? Nutze den Replace-Modus mit einem Muster wie \b(?:\d{1,3}\.){3}\d{1,3}\b und der Ersetzung [REDACTED] — Vorschau prüfen, bevor du es mit sed auf die echte Datei loslässt.

Code-Refactoring mit Regex-Suchen-und-Ersetzen

Das Suchen-und-Ersetzen deiner IDE unterstützt regex, zeigt dir aber keine Live-Vorschau über mehrere Testfälle. Baue das Muster zuerst hier mit Beispielzeilen aus deinem Codebase, prüfe Captures und Ersetzung, und füge den fertigen regex dann in VS Code / IntelliJ ein.

Strukturierte Daten extrahieren

Du musst jede E-Mail-Adresse aus einem Kontakt-Dump ziehen oder jeden Dollarbetrag aus einer Quittung? Baue den passenden regex in iKit, kopiere ihn in ein Einzeiler-Skript (text.matchAll(re)) und du hast eine Ad-hoc-Parsing-Aufgabe in zehn Zeilen Code verwandelt.

Warum lokales Regex-Testen wichtig ist

Regex-Muster kodieren oft sensible Informationen: die Struktur von Kunden-IDs, interne API-Endpunkte, Passwortregeln oder PII-Felder, die du anonymisieren willst. Sie in ein serverseitiges Tool zu kopieren — und echte Testdaten gleich mit — verrät sowohl Muster als auch Eingaben. iKits Regex-Tester ist JavaScript, das schon in deinem Browser-Tab geladen ist.

  • Null Netzwerk-Requests beim Matchen oder Ersetzen — nachprüfbar in DevTools.
  • Muster und Testtexte bleiben im Browser-Speicher; gelöscht beim Klick auf Leeren oder Seiten-Refresh.
  • Sicher für Anonymisierungsmuster in Produktions-Logs, Validierung von Kundendaten und sicherheitskritische regex-Muster.

Verwandte Anleitungen

Tiefgehende Tutorials und Tool-Vergleiche aus dem iKit-Blog.

Häufig gestellte Fragen

Welche regex-Variante wird unterstützt?

JavaScript / ECMAScript regex (dieselbe Engine, die dein Browser für nativen RegExp nutzt). Es ist ein striktes Superset von POSIX und überschneidet sich für gängige Funktionen stark mit Python re, Java Pattern und PCRE. Worauf zu achten ist: JavaScript unterstützt lookahead/lookbehind, benannte Gruppen (über /(?...)/) sowie die Flags /u und /y. Es unterstützt KEINE possessive Quantoren (a++, a*+), atomic groups ((?>...)) oder branch-reset Groups — die gibt es nur in PCRE.

Werden meine Muster oder Testtexte irgendwo hochgeladen?

Nein. Das gesamte Tool ist JavaScript innerhalb dieser Seite. Kompilierung des Musters, Matching und Ersetzung laufen alle im Browser über den nativen RegExp-Konstruktor. Öffne DevTools → Network und schau zu — beim Tippen werden keine Requests abgesetzt. Sicher zum Einfügen von regex-Mustern, die Produktions-Logs, Kunden-E-Mails oder andere Daten matchen, die kein Server-Tool loggen sollte.

Was ist der Unterschied zwischen $1 und $<name> beim Ersetzen?

Beides sind backreferences im Ersetzungsstring. $1, $2, … verweisen auf nummerierte capture groups in der Reihenfolge ihres Auftretens im Muster — (foo)(bar) ergibt $1 = 'foo', $2 = 'bar'. $ verweist auf eine benannte capture group, deklariert als (?...) — lesbarer und übersteht Umsortierungen der Gruppen im Muster. JavaScript bietet außerdem $& (gesamter Treffer), $` (Text vor dem Treffer) und $' (Text nach dem Treffer).

Warum funktioniert mein lookbehind nicht?

Lookbehinds (?<=...) und (?

Wie matche ich Emoji, Akzentzeichen oder nicht-lateinische Schriften?

Aktiviere das /u-flag (unicode) und verwende dann Unicode property escapes im pattern. `\p{L}` matcht jeden Buchstaben — einschließlich ñ, é, 中, ก, ا. `\p{N}` matcht jede Ziffer, einschließlich nicht-lateinischer Zahlen wie ٠-٩. `\p{Emoji}` matcht Emoji-code points. Ohne /u schlägt dasselbe pattern bei surrogate pair Emoji (alles außerhalb der BMP) stillschweigend fehl und behandelt Akzentzeichen als separate base + combining marks. Das /u-flag weist die Engine an, deine Eingabe als Unicode code points statt als rohe UTF-16 code units zu interpretieren — so verschwinden die meisten sprachübergreifenden regex-Bugs mit einem einzigen Schalter.