Regex Tester
Schreiben Sie einen regulären Ausdruck und sehen Sie beim Tippen, was er findet – mit Gruppen, Ersetzungsvorschau, einer Klartext-Erklärung jedes Tokens und fertigem Code.
- Live-Suche
- Erklärt das Muster
- Code für 7 Sprachen
- Läuft lokal
$1, $2 … stehen für Gruppen, $<name> für benannte Gruppen und $& für den ganzen Treffer.
Treffer
Kein Treffer
Muster erklärt
Geben Sie ein Muster ein, um zu sehen, was jeder Teil bewirkt.
Häufige Muster
Klicken Sie auf ein Muster, um es mit einem Beispieltext zu laden. Passen Sie es an Ihre Regeln an – echte Daten sind unordentlicher als jedes Beispiel.
Im eigenen Code verwenden
Das Snippet übersetzt Flags und Gruppensyntax. Die Engines unterscheiden sich im Detail – Go kennt zum Beispiel weder Lookarounds noch Rückverweise –, testen Sie daher auch in der Zielsprache.
Kurzreferenz
.Ein beliebiges Zeichen außer Zeilenumbruch\dEine Ziffer (0–9)\wEin Wortzeichen (Buchstabe, Ziffer oder _)\sEin Leerraumzeichen (Leerzeichen, Tab, Zeilenumbruch)\D \W \SDas Gegenteil: keine Ziffer, kein Wortzeichen, kein Leerraum[abc]Eines der Zeichen a, b oder c[^abc]Ein beliebiges Zeichen außer a, b oder c[a-z]Ein Zeichen im Bereich a bis z^Textanfang$Textende\bEine Wortgrenzea|bOder – entweder der Teil davor oder der danach(…)Einfangende Gruppe(?:…)Gruppe ohne Einfangen(?<name>…)Benannte einfangende Gruppe\1Derselbe Text, den Gruppe 1 gefunden hat(?=…)Lookahead – danach muss … folgen(?!…)Negativer Lookahead – danach darf … nicht folgen(?<=…)Lookbehind – davor muss … stehen(?<!…)Negativer Lookbehind – davor darf … nicht stehen*Null- oder mehrmals+Ein- oder mehrmals?Optional (null- oder einmal){3}Genau 3-mal{2,5}2- bis 5-mal*? +?Genügsam: so wenig wie möglich\.Ein wörtlicher Punkt (maskiertes Sonderzeichen)\p{L}Ein Buchstabe beliebiger Sprache (braucht das Flag u)So testen Sie einen regulären Ausdruck
Oben das Muster, darunter der Text.
- 1
Muster eingeben
Ohne die umgebenden Schrägstriche; schalten Sie die benötigten Flags ein oder aus.
- 2
Testtext hinzufügen
Fügen Sie echte Beispiele ein – Zeilen, die passen sollen, und solche, die es nicht sollen. Treffer werden sofort markiert.
- 3
Prüfen, ersetzen, exportieren
Sehen Sie sich jeden Treffer mit seinen Gruppen an, probieren Sie eine Ersetzung und kopieren Sie das Snippet für Ihre Sprache.
Sehen, was das Muster wirklich tut
Weniger Überraschungen im Produktivbetrieb.
Hervorhebung im Text
Treffer werden direkt in Ihrem Text markiert; ein Klick in der Liste springt zum Treffer.
Gruppen aufgeschlüsselt
Jeder Treffer zeigt seine nummerierten und benannten Gruppen – auch jene, die nicht beteiligt waren.
Ersetzen und Teilen
Vorschau einer Ersetzung mit $1, $<name> und $& oder die Teile, die ein Split ergibt.
In Klartext erklärt
Jedes Token des Musters wird beschrieben – Quantoren, Klassen, Gruppen, Lookarounds –, damit Sie auch fremde Regex lesen können.
Als Code kopieren
Das Muster mit korrekter Maskierung und Flags für JavaScript, Python, PHP, Java, C#, Go oder Ruby.
Schutz vor ausufernden Mustern
Die Suche läuft in einem Hintergrund-Thread. Ein Muster mit katastrophalem Backtracking wird nach kurzer Zeit gestoppt, statt die Seite einzufrieren.
Link zum Teilen
Kopieren Sie einen Link, der das Tool mit demselben Inhalt öffnet. Die Daten stehen im Teil der Adresse nach dem #, den Browser nicht an Server senden.
Privat
Alles läuft in Ihrem Browser. Was Sie eingeben oder öffnen, wird nicht an einen Server gesendet.
Reguläre Ausdrücke in fünf Minuten
Ein regulärer Ausdruck beschreibt ein Zeichenmuster. Die meisten Zeichen stehen für sich selbst, einige haben Sonderbedeutung. Zeichenklassen wie \d (Ziffer), \w (Wortzeichen) oder [a-f] passen auf ein Zeichen aus einer Menge. Quantoren sagen, wie oft: * null- oder mehrmals, + ein- oder mehrmals, ? optional, {2,4} zwei- bis viermal. Anker wie ^, $ und \b passen auf Positionen, nicht auf Zeichen.
Klammern bilden Gruppen. Eine einfangende Gruppe merkt sich ihren Treffer, sodass Sie ihn in einer Ersetzung ($1) oder im Code wiederverwenden können; (?<jahr>\d{4}) gibt der Gruppe einen Namen. Quantoren sind standardmäßig gierig – sie nehmen so viel wie möglich – und werden mit nachgestelltem ? genügsam. Dieser Unterschied erklärt die meisten „es passt zu viel“-Probleme, etwa <.+> gegenüber <.+?>.
Dieser Tester verwendet die JavaScript-Engine Ihres Browsers; die Ergebnisse sind daher für JavaScript und TypeScript exakt und für andere Sprachen sehr nah dran. Die wichtigsten Unterschiede: Python schreibt benannte Gruppen als (?P<name>…), Gos RE2-Engine kennt weder Lookarounds noch Rückverweise, und Flags werden anders übergeben. Prüfen Sie sicherheitsrelevante Eingaben – E-Mail-Adressen, URLs – stets mit einem dafür gebauten Parser und nicht allein per Regex.
Die Flags
| Flag | Name | Wirkung |
|---|---|---|
| g | global | Alle Treffer finden, statt nach dem ersten aufzuhören |
| i | ignore case | Groß- und Kleinbuchstaben gelten als gleich |
| m | multiline | ^ und $ passen auch an Anfang und Ende jeder Zeile |
| s | dot all | Der Punkt passt auch auf Zeilenumbrüche |
| u | unicode | Behandelt den Text als Unicode-Codepunkte und erlaubt \p{…} |
| y | sticky | Passt nur genau dort, wo der letzte Treffer endete |
Tipps
- Den Code rund um Ihr Muster formatiert der Code-Formatierer.
- Suchen in JSON? Machen Sie die Struktur zuerst mit dem JSON-Formatierer lesbar.
- Prozentkodierten Text dekodieren Sie vor der Suche mit dem URL-Encoder/Decoder.
- Vermeiden Sie bei Benutzereingaben verschachtelte Quantoren wie
(a+)+oder(.*)*: Sie können exponentiell lange laufen (ReDoS). Machen Sie den inneren Teil stattdessen eindeutig.
Häufig gestellte Fragen
Keine Antwort gefunden? Schreiben Sie uns – wir antworten schnell.
Welchen Regex-Dialekt verwendet dieser Tester?
Die in Ihren Browser eingebaute JavaScript-Engine (ECMAScript) samt Lookbehind, benannten Gruppen und Unicode-Eigenschaften. Muster verhalten sich in JavaScript, TypeScript und Node.js identisch.
Warum findet mein Muster nur den ersten Treffer?
Ohne das Flag g (global) hört ein regulärer Ausdruck nach dem ersten Treffer auf. Schalten Sie g ein, um alle zu finden.
Was ist der Unterschied zwischen gierig und genügsam?
Ein gieriger Quantor (.*) nimmt so viel wie möglich und gibt bei Bedarf Zeichen zurück; ein genügsamer (.*?) nimmt so wenig wie möglich. Zwischen zwei Begrenzern wollen Sie meist den genügsamen.
Was bedeutet „katastrophales Backtracking“?
Manche Muster können exponentiell viele Wege durchprobieren, um einen Text zu treffen – typisch bei verschachtelten Quantoren wie (a+)+$. Der Tester bricht einen solchen Lauf nach etwa zwei Sekunden ab und meldet es.
Kann ich das Muster in Python oder PHP verwenden?
Meist ja. Der Code-Abschnitt wandelt Flags, Maskierung und die Syntax benannter Gruppen für Python, PHP, Java, C#, Go und Ruby um. Testen Sie das Ergebnis in der Zielsprache, denn die Engines unterscheiden sich im Detail.
Werden meine Daten an einen Server gesendet?
Nein. Das Tool läuft vollständig in Ihrem Browser. Ihre Eingaben werden nicht hochgeladen, protokolliert oder auf unseren Servern gespeichert.
Weitere kostenlose Entwickler-Tools
Kodieren, formatieren, testen, umrechnen und erzeugen – kleine Werkzeuge, die im Browser laufen und Ihre Daten auf Ihrem Gerät lassen.