Regex-Tester
Reguläre Ausdrücke live testen: Treffer, Capture-Gruppen und Ersetzen, mit 15 fertigen Mustern.
Regex-Tester - reguläre Ausdrücke online testen und live prüfen
Ein regulärer Ausdruck bleibt Raterei, solange Sie nicht sehen, was er trifft. Dieser kostenlose Regex-Tester führt Ihr Muster während der Eingabe gegen Ihren eigenen Beispieltext aus und hebt jeden Treffer hervor. So finden Sie den Fehler in Sekunden, statt eine defekte Validierungsregel in die Produktion zu schieben.
Das Muster kommt in ein Feld, die Flags in das nächste, darunter fügen Sie den Testtext ein. Die Treffer aktualisieren sich sofort, und ein ungültiges Muster wird direkt gemeldet, statt still zu scheitern.
Wofür ein Regex-Tester wirklich gut ist
Die meisten Regex-Fehler sind nicht exotisch. Ein Muster trifft zu viel, zu wenig, oder es funktioniert genau bei dem einen Beispiel, an das Sie gedacht haben, und versagt beim zweiten. Ein Tester macht dieses unsichtbare Verhalten sichtbar: Fügen Sie fünf realistische Eingaben ein, auch die unangenehmen, und beobachten Sie, welche aufleuchten. Es ist außerdem der schnellste Weg, die Syntax zu lernen, weil Sie ein Zeichen ändern und die Folge sofort sehen.
So nutzen Sie diesen Regex-Tester
- Muster ohne die umgebenden Schrägstriche eintragen, zum Beispiel
[a-z]+\d{2,4}. - Die gewünschten Flags in das Flags-Feld schreiben, etwa
gifür eine globale Suche ohne Beachtung der Groß- und Kleinschreibung. - Realistischen Beispieltext in Testtext einfügen, inklusive der Grenzfälle, die scheitern sollen.
- Die im Text hervorgehobenen und unter Treffer & Gruppen aufgelisteten Treffer lesen, Muster anpassen und wiederholen, bis genau der richtige Text markiert ist.
- Prüfen Sie die Capture-Gruppen bei jedem Treffer und tragen Sie unter Ersetzen durch eine Ersetzung mit
$1oder$<name>ein; der umgeschriebene Text erscheint unter Ersetzungsergebnis.
Sie wissen nicht, wo Sie anfangen sollen? Das Menü Musterbibliothek lädt eines von 15 gängigen Mustern samt seinen Flags, von E-Mail-Adressen, URLs, IPv4-Adressen, UUIDs und Hex-Farben bis zu Markdown-Links, doppelten Wörtern und überzähligen Leerzeichen am Zeilenanfang oder -ende. Ist das Testfeld leer oder enthält es noch ein früheres Beispiel, kommt ein Beispieltext mit; haben Sie eigenen Text eingefügt, bleibt er stehen, und das Muster läuft gegen Ihre echten Daten. Verstehen Sie diese Muster als Ausgangspunkt, nicht als Validierung: Das E-Mail-Muster etwa ist bewusst praxisnah und akzeptiert nicht jede Adresse, die der Standard erlaubt. Der Leitfaden zu Regex für E-Mail-Adressen und der Leitfaden zu Zahlen, Telefonnummern und IP-Adressen zeigen, wo solche Muster an ihre Grenzen stoßen.
Capture-Gruppen und Suchen-und-Ersetzen
Klammern Sie einen Teil des Musters ein, um ihn zu erfassen: Dieser Tester listet jede Gruppe neben ihrem Treffer - nummeriert als Gruppe 1, Gruppe 2 und so weiter, dazu jede benannte Gruppe in der Form (?<name>...). So holen Sie das Jahr, eine Vorwahl oder eine Dateiendung aus einem Treffer heraus, statt nur zu bestätigen, dass er passt. Tragen Sie etwas in das Feld Ersetzen durch ein, um Treffer sofort umzuschreiben: $1 fügt die erste Gruppe ein, $<name> eine benannte, $& den ganzen Treffer und $$ ein wörtliches Dollarzeichen.
Die Flags und ihre Wirkung
| Flag | Wirkung | Wann nötig |
|---|---|---|
g | Findet jeden Treffer, nicht nur den ersten | Alle Vorkommen ersetzen oder zählen |
i | Ignoriert Groß- und Kleinschreibung | Benutzereingaben, E-Mail-Adressen, Tags |
m | ^ und $ gelten pro Zeile | Zeilenweises Arbeiten in Logs oder Listen |
s | . trifft auch den Zeilenumbruch | Mehrzeilige Blöcke erfassen |
u | Voller Unicode-Modus | Emojis, Umlaute und nicht-lateinische Schriften |
y | Sticky - trifft nur an der aktuellen Position | Tokenizer und Parser schreiben |
Die wichtigsten Zeichen
| Zeichen | Bedeutung |
|---|---|
\d \w \s | Ziffer, Wortzeichen, Leerraum |
. | Jedes Zeichen außer dem Zeilenumbruch, sofern das s-Flag fehlt |
^ $ | Anfang und Ende der Zeichenkette, mit m jeder Zeile |
* + ? | Null oder mehr, eins oder mehr, null oder eins |
{2,5} | Zwei bis fünf Wiederholungen |
[abc] [^abc] | Eines dieser Zeichen, oder alles außer diesen |
(...) (?:...) | Erfassende Gruppe, nicht erfassende Gruppe |
\b | Wortgrenze - die Lösung, um nur ganze Wörter zu treffen |
Wofür Menschen Regexe schreiben
- E-Mail-Adressen, Telefonnummern, Postleitzahlen und Ausweisnummern in Formularen validieren.
- IP-Adressen, Statuscodes, Zeitstempel oder Nutzer-IDs aus Logzeilen extrahieren.
- Suchen und Ersetzen über eine ganze Codebasis, inklusive Refactorings, die der Editor nicht wörtlich erledigen kann.
- URL-Routing und Weiterleitungsregeln in Framework, Webserver oder CDN.
- Importierte oder gescrapte Daten bereinigen, bevor sie in die Datenbank gelangen.
- Regeln für die Passwortzusammensetzung auf der Clientseite durchsetzen.
Fehler, die am meisten Zeit kosten
- Gierige Quantoren.
.*läuft bis zum Zeilenende. Mit.*?oder einer negierten Klasse wie[^"]*früher stoppen. - Nicht maskierte Metazeichen. Ein wörtlicher Punkt, Plus, Fragezeichen oder Schrägstrich braucht einen Backslash davor.
- Das
g-Flag vergessen und sich wundern, warum nur das erste Vorkommen ersetzt wurde. - Katastrophales Backtracking. Verschachtelte Quantoren wie
(a+)+können bei langen Nicht-Treffern hängen bleiben. - Zu strenge E-Mail-Muster. Echte Adressen enthalten Pluszeichen, Punkte und internationale Zeichen - prüfen Sie locker und bestätigen Sie per E-Mail.
- HTML parsen wollen. Für verschachtelte Strukturen einen Parser nehmen; Regex kann Tags nicht zählen.
Hinweis zu den Regex-Dialekten
Dieser Tester nutzt die JavaScript-Engine Ihres Browsers - genau richtig, wenn das Muster in einer Webseite, in Node.js oder in einem JSON-Schema laufen soll. PCRE, Python, Go und PostgreSQL unterscheiden sich in Details wie Lookbehind, benannten Gruppen und Unicode-Eigenschaften. Testen Sie ein Muster in der Umgebung, in der es tatsächlich läuft, bevor Sie sich darauf verlassen.
Nichts wird verschickt
Muster und Beispieltext bleiben im Browser. Das ist wichtig, weil Testdaten meist echte Daten sind - Logauszüge, Kundendatensätze, Beispielmails - und nichts davon auf einem fremden Server landen sollte.
Dasselbe Muster in Python, Java, C#, PHP und Go
Funktioniert ein Muster hier, lässt es sich meist mit nur geändertem Rahmen in eine andere Sprache übernehmen. Was wirklich Ärger macht, ist das Escaping von Backslashes in String-Literalen und die Frage, welche Engine-Funktionen es überhaupt gibt.
| Sprache | Auf Treffer prüfen | Aufpassen bei |
|---|---|---|
| Python | re.search(r'\d{4}', text) | Raw-Strings verwenden; benannte Gruppen heißen (?P<name>...) |
| Java | Pattern.compile("\\d{4}").matcher(text).find() | Backslashes verdoppeln; matches() verlangt einen Treffer über den ganzen String |
| C# / .NET | Regex.IsMatch(text, @"\d{4}") | Verbatim-Strings mit @ ersparen das doppelte Escaping |
| PHP | preg_match('/\d{4}/', $text) | PCRE: Begrenzer sind Pflicht, u für UTF-8 ergänzen |
| Go | regexp.MustCompile(`\d{4}`).MatchString(text) | RE2-Engine: kein Lookbehind, keine Rückverweise |
Passende Werkzeuge
Muster arbeiten fast immer auf Text von woanders. Ein Payload formatiert der JSON Formatter, escapte Werte löst der URL Decoder auf, Tokens liest der JWT Decoder, und getroffene Epoch-Werte werden im Timestamp-Konverter zu Datumsangaben.