onlinetools.dev

Regex-Tester

Reguläre Ausdrücke testen mit Live-Hervorhebung von Treffern und Gruppen

Läuft lokal
loading…
Über dieses Tool

Schreib ein Pattern, füge Beispieltext ein, und jeder Match wird beim Tippen hervorgehoben — mit Capture-Groups, benannten Gruppen und Match-Positionen darunter aufgelistet. Der Tester nutzt die JavaScript-RegExp-Engine, das Verhalten entspricht also exakt dem von Node.js und Browsern, inklusive Lookbehind, benannter Gruppen und Unicode-Property-Escapes.

Flags werden pro Buchstabe umgeschaltet (g, i, m, s, u, y, d) und das Pattern wird bei jedem Tastendruck kompiliert; Syntaxfehler erscheinen sofort mit der Original-Meldung der Engine statt erst nach einem Buttonklick. Patterns mit leeren Matches wie a* werden sicher behandelt, und ausufernde Eingaben werden bei 10.000 Matches gekappt, damit ein verirrtes .* den Tab nicht einfrieren kann.

Regex-Dialekte unterscheiden sich zwischen Engines — ein Pattern, das hier funktioniert, braucht für PCRE, RE2 oder Pythons re-Modul eventuell Anpassungen, vor allem bei Lookbehind-Unterstützung, possessiven Quantifizierern und Inline-Flags.

Häufige Fragen

Welchen Regex-Dialekt verwendet dieser Tester?
ECMAScript (JavaScript), so wie ihn dein eigener Browser implementiert. Unterstützt werden Lookahead, Lookbehind, benannte Capture-Groups, Rückverweise und Unicode-Property-Escapes wie \p{Letter} (mit dem u-Flag). Nicht unterstützt wird PCRE-exklusive Syntax wie possessive Quantifizierer oder Rekursion.
Warum matcht mein Pattern alles / nichts?
Die zwei Klassiker: ein nicht escaptes Metazeichen (. matcht jedes Zeichen — escape es als \. für einen literalen Punkt) oder ein gedanklich fehlendes g-Flag — dieser Tester findet immer alle Matches, dein Code aber nur den ersten, sofern g nicht gesetzt ist.
Was sind benannte Capture-Groups?
Die Syntax (?<name>...) benennt eine Gruppe, sodass du Matches über den Namen statt über die Position auslesen kannst: match.groups.name in JavaScript. Das Gruppen-Panel unter den Matches zeigt für jeden Match nummerierte und benannte Captures.
Läuft ein Regex von hier unverändert in Python oder Go?
Oft, aber nicht immer. Zeichenklassen, Quantifizierer und Anker sind portabel; Lookbehind, die Syntax benannter Gruppen (Python nutzt (?P<name>...)) und Inline-Flags unterscheiden sich. Gos RE2-Engine lehnt Rückverweise und Lookaround sogar komplett ab.
Verwandte Tools