Zum Inhalt springen
Case Converter Online
de

Regex Tester online

Tippe einen regulären Ausdruck und etwas Testtext und sieh jeden Treffer schon beim Tippen markiert. Prüf Capture Groups und schau dir Suchen und Ersetzen an, bevor du es im Code einsetzt.

Flags

Treffer

0

Tippe ein Muster, um Treffer zu sehen.

Trefferdetails und Gruppen

Nutze $1 oder $<name> für Gruppen und $& für den ganzen Treffer.

Was ein Regex Tester macht

Ein regulärer Ausdruck, kurz Regex, ist eine kleine Mustersprache zum Finden von Text. \d{4} bedeutet „vier Ziffern hintereinander“. [\w.+-]+@ bedeutet „ein oder mehrere Wortzeichen, Punkte, Pluszeichen oder Bindestriche, gefolgt von einem @“. Regex wird für Suchen und Ersetzen in Code-Editoren, für die Prüfung von Formularen, die Auswertung von Logs und das Bereinigen von Daten verwendet.

Muster sind leicht ein wenig falsch. Mit einem Tester probierst du ein Muster an echtem Beispieltext aus und siehst genau, was es erfasst, bevor du es in ein Skript einbaust. Dieser hier zeigt Treffer beim Tippen, listet jede Capture Group auf und zeigt eine Vorschau der Ersetzung.

So nutzt du den Regex Tester

  1. Tippe dein Muster in Regulärer Ausdruck. Lass die Schrägstriche weg. Das Tool zeigt sie für dich an, mit den aktiven Flags nach dem schließenden Schrägstrich.
  2. Schalte Flags mit den Schaltflächen g, i, m, s, u und y ein oder aus.
  3. Füge Beispieltext in Testtext ein oder tippe ihn.
  4. Lies das Ergebnis unter Treffer. Jeder Treffer ist markiert, und der Zähler zeigt, wie viele gefunden wurden.
  5. Schau unter Trefferdetails und Gruppen nach der Position jedes Treffers und dem Text, den jede Gruppe erfasst hat.
  6. Um Suchen und Ersetzen zu testen, tippe in Ersetzen durch. Der geänderte Text erscheint unter Ergebnis, bereit zum Kopieren.

Du weißt nicht, wo du anfangen sollst? Wähl einen Eintrag aus Häufige Muster. Es gibt Muster für E-Mail-Adressen, Webadressen, Datumsangaben, IPv4-Adressen, Hex-Farben, Telefonnummern, Zahlen und doppelte Leerzeichen.

Die Flags

Flag Name Was es ändert
g global Findet jeden Treffer, nicht nur den ersten
i ignore case hello passt auch auf Hello und HELLO
m multiline ^ und $ passen auf Anfang und Ende jeder Zeile
s dot all . passt auch auf einen Zeilenumbruch
u unicode Liest Emojis als ein Zeichen und erlaubt Klassen wie \p{...}
y sticky Jeder Treffer muss genau dort beginnen, wo der letzte endete

Beispiele

Diese Ergebnisse stammen aus den Mustern in diesem Tool.

Muster Flags Text Treffer
\d+ keine a1 b22 c333 1
\d+ g a1 b22 c333 1, 22, 333
hello gi Hello hello HELLO Hello, hello, HELLO
^\w+ gm zwei Zeilen: one two und three four one, three
a.b g a, Zeilenumbruch, b kein Treffer
a.b gs a, Zeilenumbruch, b ein Treffer

Die Seite lädt mit einem Beispiel für Datumsangaben. Das Muster (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) findet im Beispieltext drei Daten: 2026-10-31, 2024-01-15 und 2026-11-02. Die Ersetzung $<day>/$<month>/$<year> macht aus dem ersten 31/10/2026. Für das deutsche Datumsformat nimmst du als Ersetzung $<day>.$<month>.$<year> und bekommst 31.10.2026.

Eine Ersetzung hilft auch beim Aufräumen. Das Muster \s{2,} mit einem einzelnen Leerzeichen als Ersetzung macht aus too many spaces den Text too many spaces.

Umlaute und ß in regulären Ausdrücken

Für deutsche Texte ist ein Detail besonders wichtig: In JavaScript passt \w nur auf A bis Z, a bis z, Ziffern und den Unterstrich. Umlaute und ß gehören nicht dazu. Das Muster \w+ mit Flag g findet in „Die Größe der Straße“ deshalb Die, Gr, e, der, Stra und e. Ganze deutsche Wörter erwischst du mit \p{L}+ und den Flags g und u: Dann kommen Die, Größe, der und Straße heraus. Dasselbe gilt für \b, das Wortgrenzen ebenfalls nach dem ASCII-Verständnis setzt.

Deutsche Datumsangaben im Format TT.MM.JJJJ findest du mit \d{2}\.\d{2}\.\d{4}. Der Punkt muss escaped werden, sonst passt er auf jedes Zeichen.

So funktioniert es

Der Tester baut aus deinem Muster und den Flags ein JavaScript-RegExp und lässt es über den Testtext laufen. Mit dem Flag g sucht er bis zum Ende weiter. Er springt auch über leere Treffer hinweg, damit ein Muster wie x* keine Endlosschleife erzeugt.

Der Text wird escaped, bevor er markiert wird. HTML oder Skripte in deinem Beispieltext werden als normale Zeichen angezeigt und nie ausgeführt.

Die Suche läuft in einem Web Worker, einem Hintergrund-Thread. Läuft ein Muster länger als 1 Sekunde, wird der Worker gestoppt und ein neuer gestartet. Du siehst eine Meldung statt eines eingefrorenen Tabs.

Ist ein Muster ungültig, bekommst du die Fehlermeldung des Browsers. Ein einzelnes ( ergibt zum Beispiel „Unterminated group“. Diese Meldungen stammen vom Browser und können je nach Browser auch auf Englisch erscheinen.

Tipps und Grenzen

  • Vorsicht bei verschachtelten Wiederholungen. Muster wie (a+)+$ oder (\w+\s?)*$ können bei Text, der fast passt, enorm lange brauchen. Das nennt man katastrophales Backtracking. Lass jeden Teil auf etwas Bestimmtes passen und vermeide eine Wiederholung innerhalb einer Wiederholung.
  • Escape Sonderzeichen. Um einen echten Punkt zu finden, schreib \.. Dasselbe gilt für ? * + ( ) [ ] { } ^ $ | und den Backslash selbst.
  • Verankere Muster zur Validierung. Für ein Formularfeld setzt du das Muster zwischen ^ und $, damit der ganze Wert passen muss, nicht nur ein Teil davon.
  • Regex ist kein vollständiger Parser. Für das Finden von E-Mails oder Daten in Text ist es gut. Um HTML zu parsen oder zu prüfen, ob eine E-Mail-Adresse wirklich existiert, ist es kein zuverlässiger Weg.
  • Sehr große Ergebnisse werden begrenzt. Das Tool listet bis zu 5.000 Treffer und zeigt die ersten 300 Zeilen in der Detailtabelle.

Andere Wege, einen Regex zu testen

Auf der Kommandozeile gibt grep -oE jeden Treffer in einer eigenen Zeile aus:

echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'

Das gibt 2026-10-31 aus. In Python liefert re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') das Ergebnis ['2026-10-31', '2024-01-15']. Anders als JavaScript zählt Python bei \w in normalen Strings übrigens auch Umlaute mit. In JavaScript nimmst du text.match(/pattern/g) oder text.matchAll() für Gruppen.

Ähnliche Tools

Um Titel für Webadressen aufzuräumen, nimm den URL Slug Generator. Um Text in einem Link sicher zu machen, nimm URL kodieren und dekodieren.

Regex Tester: Fragen und Antworten

Welche Regex-Variante nutzt dieser Tester?

Er nutzt die JavaScript-Engine deines Browsers. Die Ergebnisse entsprechen also dem, was du mit RegExp in JavaScript und Node.js bekommst. Die meisten einfachen Muster verhalten sich in Python, PHP und Java gleich, aber Funktionen wie Lookbehind, benannte Gruppen und Unicode-Klassen können sich zwischen Sprachen leicht unterscheiden.

Warum sehe ich nur einen Treffer?

Das Flag g ist aus. Ohne dieses Flag hört ein JavaScript-Regex nach dem ersten Treffer auf. Klicke auf die Schaltfläche g, um jeden Treffer im Testtext zu finden.

Was bedeutet es, wenn der Tester sagt, er habe nach 1 Sekunde abgebrochen?

Dein Muster hat auf dem Text zu lange gebraucht, was meist auf katastrophales Backtracking hindeutet. Verschachtelte Wiederholungen wie (a+)+ oder (.*)* können die Engine zwingen, eine riesige Zahl von Wegen auszuprobieren. Der Tester lässt die Suche in einem Hintergrund-Worker laufen und stoppt ihn, damit die Seite nicht einfriert. Mach die Wiederholungen spezifischer und versuch es erneut.

Wie nutze ich eine Capture Group in der Ersetzung?

Schreib $1, $2 und so weiter für nummerierte Gruppen, $<name> für eine benannte Gruppe und $& für den ganzen Treffer. Das Muster (\w+)@(\w+) mit der Ersetzung $2 at $1 macht zum Beispiel aus a@b c@d den Text b at a d at c.

Wird mein Testtext irgendwohin gesendet?

Nein. Die Suche läuft in deinem Browser. Nichts, was du tippst, wird hochgeladen oder gespeichert.

Mehr Tools für Code und Daten

Alle Tools ansehen