So nutzt du: Regex-Tester
- Gib dein Muster zwischen den Schrägstrichen ein oder wähle eines aus den „Häufigen Mustern“ aus. Du kannst auch einen vollständigen Literal einfügen, wie zum Beispiel
/\d+/g. - Schalt-Flags wie
g(alle Übereinstimmungen),i(Groß-/Kleinschreibung ignorieren) oderm(mehrzeilig). - Füge deinen Text in das Feld „Testtext“ ein – jede Übereinstimmung wird während der Eingabe hervorgehoben.
- Schau auf der Registerkarte „Übereinstimmungen“ nach Positionen und Erfassungsgruppen, oder öffne „Ersetzen“, um eine Vorschau der Ersetzung anzuzeigen.
- Klick auf „Kopieren“, um den regulären Ausdruck zu übernehmen, und zwar
/pattern/flags; das Muster und die Flags werden zum Teilen ebenfalls in der Seiten-URL gespeichert.
Was ist ein Regex-Tester?
Ein regulärer Ausdruck (Regex) ist eine kompakte Mustersprache zum Suchen und Umwandeln von Text – zum Beispiel zum Validieren eines E-Mail-Feldes, zum Extrahieren von IDs aus Protokollen, zum Umbenennen von Dateien oder zum Bereinigen von Daten. Da schon ein einzelnes Zeichen die Übereinstimmung eines Musters verändern kann, ist das Schreiben von Regex per Versuch und Irrtum direkt im Code sehr zeitaufwendig. Ein Regex-Tester zeigt dir sofort, was ein Muster findet, welche Erfassungsgruppen es füllt und was eine Ersetzung ergeben würde.
Dieser Tester nutzt die JavaScript-Regex-Engine (ECMAScript) deines Browsers, sodass die Ergebnisse genau das sind, was String.prototype.match, matchAll, replace und RegExp.test in Chrome, Firefox, Safari, Node.js und Deno anzeigt. Die Muster werden in einem Hintergrund-Worker mit Zeitlimit ausgeführt, sodass ein außer Kontrolle geratenes Muster die Seite nicht einfrieren kann.
JavaScript-Regex-Flags
| Flag | Name | Wirkung |
|---|---|---|
g | global | Sucht alle Übereinstimmungen, anstatt beim ersten zu stoppen. |
i | ignoreCase | /abc/i findet „ABC“. |
m | multiline | ^ und $ sucht am Anfang und am Ende jeder Zeile. |
s | dotAll | . passt auch auf Zeilenumbrüche. |
u | unicode | Behandelt Surrogatpaare (Emojis) als ein Zeichen und aktiviert \p{…} Eigenschafts-Escapes. |
y | sticky | Passt nur an lastIndex – nützlich beim Schreiben von Tokenizern. |
Erfassungsgruppen, benannte Gruppen und Ersetzungen
Klammern fangen den Text ein, auf den sie passen. In (\d{4})-(\d{2}) Gruppe 1 steht das Jahr und in Gruppe 2 der Monat. Benannte Gruppen machen Muster selbsterklärend: (?<year>\d{4}) steht als match.groups.year im Code und als $<year> in einer Ersetzungszeichenfolge. Zum Beispiel beim Ersetzen von (?<y>\d{4})-(?<m>\d{2})-(?<d>\d{2}) durch $<d>/$<m>/$<y> wird 2026-10-25 zu 25/10/2026. Verwende (?:…) , wenn du Gruppierungen ohne Erfassung benötigst.
Katastrophales Backtracking
Muster mit verschachtelten Quantoren wie (a+)+$ oder (\w+\s?)*$ können bei Eingaben, die fast passen, exponentielle Laufzeiten verursachen – eine klassische Ursache für eingefrorene Browser und ReDoS-Schwachstellen auf Servern. Wenn ein Muster hier länger als 1,5 Sekunden läuft, wird es gestoppt und markiert. Behebe das, indem du Alternativen gegenseitig ausschließend gestaltest und .* durch eine negierte Klasse wie [^"]*oder das Muster zu verankern.
Tipps für zuverlässige Muster
- Verankere Validierungsmuster mit
^…$, andernfalls\d{5}wird auch „validiert“abc123456. - Metazeichen im Literal escapen:
\.\?\(\[\$. - Bevorzuge spezifische Klassen gegenüber
.*; sie sind schneller und entsprechen genau dem, was du meinst. - Regex eignet sich schlecht für verschachtelte Formate wie HTML oder JSON – verwende einen Parser (oder unseren JSON-Formatter).
- Willst du den Text vor und nach einer vollständigen Ersetzung vergleichen? Füge beides in den Diff-Checker ein.
Häufige Regex-Muster
Getestete reguläre Ausdrücke mit Erklärungen und Code für JavaScript, Python und PHP:
- E-Mail-Adresse
- URL (http und https)
- IPv4-Adresse
- US-Telefonnummer
- Internationale Telefonnummer (E.164)
- US ZIP-Code
- UK-Postleitzahl
- Kanadische Postleitzahl
- Datum (YYYY-MM-DD)
- Datum (MM/DD/YYYY)
- Datum (TT/MM/JJJJ)
- Uhrzeit (24-Stunden HH:MM)
- Zeit (12-Stunden mit AM/PM)
- Hex-Farbcode
- Starkes Passwort
- Benutzername
- URL-Slug
- UUID
- Kreditkartennummer
- US-Sozialversicherungsnummer
- Domainname
- MAC-Adresse
- Semantische Version (semver)
- ISO 8601 Datum und Uhrzeit
- JSON Web Token (JWT)
- Base64-String
- Bilddateiname
- YouTube-Video-ID aus URL
- E-Mail-Adressen in Text finden
- URLs in Text finden
- Hashtags finden
- @Mentions finden
- Regex für HTML-Tags
- Zahlen im Text finden
- Nur Ziffern
- Dezimalzahl
- Nur Buchstaben
- Alphanumerisch
- Leerzeichen am Anfang und Ende entfernen
- Mehrfache Leerzeichen entfernen
- Doppelte Wörter finden
- HTML-Tags entfernen
Häufige Fragen
Welche Regex-Variante verwendet dieser Tester?
\A/\Z Anker oder Inline-Modifikatoren wie (?i).Warum findet mein Suchmuster nur eine Übereinstimmung?
g (global)-Flag hält JavaScript beim ersten Treffer an. Schalte g , um alle zu finden – der Tester erinnert dich auch daran, wenn es ausgeschaltet ist.Wie kann ich über mehrere Zeilen hinweg einen Abgleich vornehmen?
m Flag, damit ^ und $ zeilenweise arbeiten, und das s Flag (oder [\s\S]), wenn . auch Zeilenumbruchzeichen berücksichtigen soll.Wird mein Testtext gespeichert oder hochgeladen?
Was ist ein guter regulärer Ausdruck zur Überprüfung von E-Mail-Adressen?
^[^\s@]+@[^\s@]+\.[^\s@]+$ (oder die Voreinstellung „E-Mail-Adresse“). Vollständig RFC 5322-konforme Muster sind sehr umfangreich und geben dennoch keinen Aufschluss darüber, ob das Postfach existiert – schick dazu eine Bestätigungs-E-Mail.