Ein Regex Tester, der erklärt, was er findet
Ein regulärer Ausdruck, kurz Regex, beschreibt die Form eines Textes: „fünf Ziffern“, „ein doppelt getipptes Wort“, „ein Datum im Format JJJJ-MM-TT“. Man nutzt ihn, um Logdateien zu durchsuchen, Formularfelder zu prüfen, Daten aus einem Export zu ziehen oder in einem ganzen Projekt zu suchen und zu ersetzen.
Tippen Sie das Muster in „Muster“, wählen Sie die „Flags“ und fügen Sie einen „Testtext“ ein. Die „Hervorgehobenen Treffer“ ändern sich beim Tippen, in zwei abwechselnden, unterstrichenen Farben, damit zwei direkt aufeinanderfolgende Treffer unterscheidbar bleiben. Die Tabelle zeigt zu jedem Treffer die Position (ab 0 gezählt), den Wert und die Gruppen, nummeriert und benannt.
Das Muster folgt der JavaScript-Syntax und wird von der Engine Ihres Browsers ausgeführt. Nichts wird hochgeladen: Die Berechnung läuft auf Ihrem Gerät.
So funktioniert es
- Geben Sie ein Muster wie
\d+ein und aktivieren Sie „g: alle Treffer“. - Mit dem Testtext
a1b22c333meldet das Werkzeug „3 Treffer“:1an Position 1,22an Position 3 und333an Position 6. - Wechseln Sie zu „Ersetzen“, um eine Ersetzung vorab zu sehen, oder zu „Aufteilen“, um den Text an jedem Treffer zu trennen.
- Lesen Sie „Das Muster erklärt, Element für Element“ und kopieren Sie anschließend den fertigen Code oder den Link.
Spickzettel zur Syntax
| Schreibweise | Bedeutung |
|---|---|
\d \w \s | eine Ziffer; ein Buchstabe ohne Umlaut, eine Ziffer oder _; ein Leerraum |
[a-z], [^0-9] | ein Zeichen aus der Liste, ein Zeichen außerhalb davon |
* + ? {2,4} | 0-mal oder öfter, 1-mal oder öfter, optional, 2- bis 4-mal |
^ $ \b | Anfang, Ende, Wortgrenze |
( ) (?: ) (?<name> ) | erfassende, nicht erfassende und benannte Gruppe |
(?= ) (?! ) (?<= ) (?<! ) | Lookahead und Lookbehind, positiv oder negativ |
g i m s u y d | Flags: global, ohne Groß-/Kleinschreibung, mehrzeilig, Punkt für alles, Unicode, haftend, Gruppenpositionen |
Genaue Beispiele
Das Muster (?<jahr>\d{4})-(?<monat>\d\d) liefert für 2026-03 die Gruppe 1 „jahr“ = 2026 und die Gruppe 2 „monat“ = 03. In „Ersetzen durch“ ergibt $<monat>/$<jahr> den Text 03/2026; $1 fügt Gruppe 1 ein, $& den ganzen Treffer.
Der Lookbehind (?<=Nr\. )\d+ findet 4711 in „Bestellung Nr. 4711, 3 Stück“, denn nur diese Zahl steht hinter „Nr. “. Mit Flag u erfasst \p{L}+ „Größe“ und „Übung“ vollständig, während \w+ an Umlauten und am ß abbricht. In der Ansicht „Aufteilen“ trennt [,;]\s* „Apfel, Birne;Kiwi“ in drei Teile.
Die Erklärung zerlegt auch eine deutsche Telefonnummer wie ^(?:\+49|0)[1-9]\d{6,12}$: Textanfang, +49 oder 0, eine Ziffer von 1 bis 9, dann 6 bis 12 weitere Ziffern, Textende. Die „Häufigen Muster“ bieten solche Ausgangspunkte (einfache E-Mail, URL, Postleitzahl, IPv4 …), die Sie mit Ihren eigenen Daten prüfen sollten.
Typische Fallen
- Gierig oder genügsam. Bei
<b>fett</b>erfasst<.+>alles in einem Stück,<.+?>dagegen erst<b>und dann</b>. - Maskieren. Der Punkt steht für „ein beliebiges Zeichen“: Für einen echten Punkt schreiben Sie
\.. In einem String im Quellcode muss jeder Backslash oft verdoppelt werden; der erzeugte Code erledigt das für JavaScript, Python, PHP und Java. - Katastrophales Backtracking.
(a+)+$auf dreißig „a“ und ein „b“ probiert Milliarden Zerlegungen durch. Das Werkzeug führt jedes Muster getrennt aus und bricht es nach einer Sekunde mit der Meldung „Muster zu aufwendig“ ab: Die Seite reagiert weiter.
Regex-Engines ähneln sich stark, doch manche Konstrukte (benannte Gruppen, Lookbehind, \p{…}) werden je nach Sprache anders geschrieben oder fehlen: Testen Sie deshalb auch in Ihrer Zielumgebung.
Tipps
Prüfen Sie Ihr Muster an unterschiedlichen Beispielen, auch an solchen, die nicht passen dürfen: ein Datum wie 2026-02-30, eine vierstellige Postleitzahl, eine Adresse ohne Punkt. Versuchen Sie nicht, eine E-Mail-Adresse per Regex perfekt zu prüfen: Ein einfaches Muster fängt Tippfehler ab, und erst eine Bestätigungsmail beweist, dass die Adresse existiert.
Häufige Fragen
Warum funktioniert mein Muster hier, aber nicht in meinem Programm?
Das Werkzeug nutzt die JavaScript-Engine des Browsers. Python, PHP und Java unterscheiden sich in Details: Nutzen Sie „Code zum Kopieren“, der benannte Gruppen und Maskierung anpasst, und lesen Sie die als Kommentar ergänzten Hinweise.
Wozu dient das Flag g?
Ohne g endet die Suche beim ersten Treffer, und eine Ersetzung ändert nur diesen. Mit g werden alle Treffer gefunden und ersetzt.
Wie teile ich ein Muster?
„Link kopieren“ legt Muster, Flags und Testtext (bis zu 1.000 Zeichen) hinter das Zeichen # der Adresse. Dieser Teil wird nie an den Server übertragen.
Was bedeutet „(nicht verwendet)“ bei einer Gruppe?
Die Gruppe steht im Muster, war an diesem Treffer aber nicht beteiligt, etwa der nicht gewählte Zweig einer Alternative wie (a)|(b).