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
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
- Geben Sie das Muster in Muster ein, ohne umschließende Schrägstriche:
(\d{4})-(\d{2}), nicht/(\d{4})-(\d{2})/g. - Aktivieren Sie die benötigten Flags (
gist standardmäßig an). - Fügen Sie Ihren Beispieltext in Eingabetext ein.
- 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.
- Optional: Geben Sie eine Ersetzung wie
$2.$1ein 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):
fehlerfindet auchFEHLERundFehler, 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,
\wund\derkennen 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
\1im 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.$0ist der gesamte Treffer.${jahr}: Inhalt einer benannten Gruppe.${1}abc: Klammern verwenden, wenn auf eine Gruppennummer Buchstaben oder Ziffern folgen, sonst wird$1abcals 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.