Tools / Text und Daten / Regex-Tester
Clientseitig

Regex-Tester

Reguläre Ausdrücke gegen echten Beispieltext prüfen mit einer Match-Liste, Capture-Gruppen-Extraktion und Ersetzungsvorschau, alles via WebAssembly.

Funktionen

  • Listet jeden Treffer mit Start- und Endposition
  • Capture-Gruppen-Extraktion pro Treffer
  • Ersetzungsvorschau mit $1 und ${name}
  • Flags g, i, m, s unabhängig wählbar
  • Engine mit linearer Laufzeit: kein katastrophales Backtracking
0 Treffer

Muster eingeben, Text einfügen, Flags wählen und auf Testen klicken: Das Tool listet jeden Treffer mit Position und dem Inhalt jeder Capture-Gruppe. Mit einer Ersetzung und einem Klick auf Ersetzen sehen Sie den Text nach dem Suchen und Ersetzen und können ihn kopieren. Die Muster kompiliert die Rust-Bibliothek regex, dieselbe Engine, die Werkzeuge wie ripgrep nutzen, ausgeführt als WebAssembly in Ihrem Browser. Log-Auszüge, Kundendaten oder Quellcode, an denen Sie testen, werden nie hochgeladen.

So testen Sie einen regulären Ausdruck

  1. Geben Sie das Muster in Muster ein, ohne umschließende Schrägstriche: (\d{4})-(\d{2}), nicht /(\d{4})-(\d{2})/g.
  2. Aktivieren Sie die benötigten Flags (g ist standardmäßig an).
  3. Fügen Sie Ihren Beispieltext in Eingabetext ein.
  4. Klicken Sie auf Testen. Der Zähler nennt die Zahl der Treffer, jede Trefferkarte zeigt den gefundenen Text, Start- und Endposition sowie jede Capture-Gruppe mit eigenen Positionen.
  5. Optional: Geben Sie eine Ersetzung wie $2.$1 ein und klicken Sie auf Ersetzen. Das Ausgabefeld zeigt den umgewandelten Text, die Statuszeile die Zahl der Ersetzungen.

Die Flags erklärt

  • g (global): findet alle Treffer. Ohne dieses Flag wird nur der erste Treffer gemeldet und nur das erste Vorkommen ersetzt.
  • i (Groß-/Kleinschreibung ignorieren): fehler findet auch FEHLER und Fehler, einschließlich Umlauten wie Ä und ä.
  • m (mehrzeilig): ^ und $ passen an Anfang und Ende jeder Zeile statt nur des gesamten Textes. Nötig, um Muster an Log-Zeilen zu verankern.
  • s (dotall): Der Punkt . passt auch auf Zeilenumbrüche, für Muster über mehrere Zeilen.
  • u (Unicode): Unicode ist in dieser Engine immer aktiv, \w und \d erkennen bereits Buchstaben und Ziffern aller Schriften, also auch ä, ö, ü und ß. Die Schaltfläche existiert aus JavaScript-Gewohnheit und ändert nichts.

Inline-Flags funktionieren ebenfalls: (?i) am Musteranfang ignoriert die Groß- und Kleinschreibung ohne Schaltfläche.

Unterstützte Syntax und Unterschiede zu JavaScript oder PCRE

Die Rust-Engine unterstützt die Syntax des Alltags: Zeichenklassen ([a-z], \d, \w, \s), Quantoren (*, +, ?, {2,5} und ihre genügsamen Varianten), Alternativen, Anker, Wortgrenzen \b, nicht erfassende Gruppen (?:...), benannte Gruppen (?<jahr>...) oder (?P<jahr>...) und Unicode-Klassen wie \p{L}.

Zwei Funktionen fehlen bewusst; ein Muster, das sie nutzt, wird mit einer klaren Fehlermeldung abgelehnt:

  • Lookaround: Lookahead (?=...), negativer Lookahead (?!...) und Lookbehind (?<=...).
  • Rückverweise wie \1 im Muster.

Das ist der Preis einer starken Garantie: Die Suchzeit wächst linear mit der Eingabe, kein Muster kann die Seite durch katastrophales Backtracking einfrieren, die Ursache vieler ReDoS-Lücken in Backtracking-Engines. Zielt Ihr Code auf JavaScript, Python oder PCRE und nutzt Lookarounds, testen Sie diese Teile in einer Umgebung mit der jeweiligen Engine.

Syntax der Ersetzung

  • $1, $2: Inhalt nummerierter Gruppen. $0 ist der gesamte Treffer.
  • ${jahr}: Inhalt einer benannten Gruppe.
  • ${1}abc: Klammern verwenden, wenn auf eine Gruppennummer Buchstaben oder Ziffern folgen, sonst wird $1abc als Gruppe namens „1abc“ gelesen und fügt nichts ein.
  • $$: ein wörtliches Dollarzeichen.

Beispiel aus der Praxis: Das Muster (\d{4})-(\d{2})-(\d{2}) mit der Ersetzung $3.$2.$1 wandelt ISO-Datumsangaben wie 2026-10-14 in das deutsche Format 14.10.2026 um.

Positionen richtig lesen

Start- und Endposition sind Byte-Offsets im UTF-8-Text, das Ende ist exklusiv. Bei reinem ASCII entsprechen sie den Zeichenpositionen. Umlaute und ß belegen jedoch zwei Bytes, Emoji vier: Nach einem „ü“ liegen die Positionen um eins höher als bei einer reinen Zeichenzählung. Gruppen, die an einem Treffer nicht beteiligt waren, werden als ohne Treffer angezeigt.

Typische Einsätze

  • Ein Muster zum Extrahieren von IDs, E-Mail-Adressen oder Datumsangaben aus Logs entwickeln und jede Gruppe prüfen, bevor es in den Code wandert.
  • Ein Suchen-und-Ersetzen für eine CSV- oder Konfigurationsdatei vorbereiten, mit Vorschau des Ergebnisses vor dem Einsatz an der echten Datei.
  • Muster für Werkzeuge mit derselben Engine oder ähnlicher Syntax bauen, etwa ripgrep oder Rust-Programme.

Datenschutz: Ihr Beispieltext bleibt lokal

Um ein Muster ernsthaft zu testen, braucht man echte Daten: Produktionslogs mit IP-Adressen und Benutzer-IDs, Kundenexporte, Quelldateien. Online-Tester, die serverseitig auswerten oder Sitzungen zum Teilen speichern, behalten Kopien davon. IP-Adressen gelten nach DSGVO als personenbezogene Daten. Hier wird das Muster per WebAssembly im Tab kompiliert und ausgeführt; nichts wird übertragen oder gespeichert.

Häufige Fragen

Wird mein Testtext hochgeladen?
Nein. Suche und Ersetzung laufen in Ihrem Browser. Weder Muster noch Text werden gesendet.
Warum wird mein Lookahead abgelehnt?
Die Regex-Engine von Rust unterstützt weder Lookaround noch Rückverweise, im Gegenzug ist die Laufzeit garantiert linear. Formulieren Sie das Muster mit Capture-Gruppen um oder testen Sie es in einer Engine mit diesen Funktionen.
Aktualisiert sich der Tester beim Tippen?
Nein. Klicken Sie auf Testen oder Ersetzen, um das Muster auszuführen. So bleibt die Seite auch bei großen Texten reaktionsschnell.
Warum stimmen die Positionen nicht mit der Zeichenzahl überein?
Sie werden in UTF-8-Bytes gezählt. Nicht-ASCII-Zeichen wie Umlaute belegen zwei bis vier Bytes und verschieben die folgenden Positionen.
Funktioniert mein Muster auch in JavaScript oder Python?
Die gängige Syntax ist gleich. Unterschiede gibt es bei Lookarounds und Rückverweisen (hier nicht unterstützt) sowie bei Details zu benannten Gruppen und Escapes. Prüfen Sie dafür die Dokumentation der Ziel-Engine.
Was bewirkt das Flag u?
Nichts zusätzlich: Unicode-Matching ist in dieser Engine immer aktiv.

Verwandte Tools: Vergleichen Sie einen Text vor und nach der Ersetzung mit dem Text-Diff, oder kodieren Sie Sonderzeichen in URLs mit dem URL-Encoder und -Decoder.