Capture-Gruppen
So verwenden Sie den Regex-Tester
- Geben Sie Ihr Muster im Feld Muster ein.
- Aktivieren Sie Flags nach Bedarf:
gfindet alle Treffer,iignoriert Groß-/Kleinschreibung,mlässt^und$auf Zeilengrenzen passen,slässt.auf Zeilenumbrüche passen. - Fügen Sie Ihre Testzeichenkette ein, Treffer werden in Echtzeit hervorgehoben und Capture-Gruppen darunter angezeigt.
Kurzreferenz JavaScript-Regex-Syntax
| Token | Bedeutung |
|---|---|
. | Beliebiges Zeichen (außer Zeilenumbruch) |
\d / \D | Ziffer / Nicht-Ziffer |
\w / \W | Wortzeichen [a-zA-Z0-9_] / Nicht-Wortzeichen |
\s / \S | Leerzeichen / Nicht-Leerzeichen |
^ / $ | Anfang / Ende der Zeichenkette (oder Zeile mit Flag m) |
\b | Wortgrenze |
+ / * / ? | Ein oder mehr / null oder mehr / optional |
{n,m} | Zwischen n und m Wiederholungen |
[abc] | Zeichenklasse |
(abc) | Einfangende Gruppe |
(?:abc) | Nicht einfangende Gruppe |
a|b | Alternation (a oder b) |
Häufige Regex-Muster
- E-Mail-Adresse:
[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,} - URL:
https?://[^\s/$.?#][^\s]* - IP-Adresse:
\b(?:\d{1,3}\.){3}\d{1,3}\b - Datum (JJJJ-MM-TT):
\d{4}-\d{2}-\d{2} - Hex-Farbe:
#(?:[0-9a-fA-F]{3}){1,2}\b
Gierige vs. faule Quantifikatoren
Standardmäßig sind Quantifikatoren (+, *) gierig: sie passen auf so viel wie möglich. Fügen Sie ? nach dem Quantifikator hinzu, um ihn faul zu machen (so wenig wie möglich): +?, *?. Beispiel: <.+?> passt auf einzelne HTML-Tags statt auf alles vom ersten < bis zum letzten >.
Unterschiede zwischen Regex-Engines: JavaScript vs. PCRE vs. RE2
Regex-Syntax sieht über Engines hinweg ähnlich aus, verhält sich aber in wichtigen Bereichen anders. Ein Muster, das im Browser funktioniert, kann in PHP, Python oder Go scheitern:
| Funktion | JavaScript (dieses Tool) | PCRE (PHP, Python, Perl) | RE2 (Go, Rust) |
|---|---|---|---|
Lookbehind (?<=...) | Feste Breite (ES2018+) | Variable Breite | Nur feste Breite |
Rückreferenzen | Ja | Ja | Nein |
Atomare Gruppen (?>...) | Nein | Ja | Nein |
Unicode-Klassen \p{L} | Ja (mit Flag u) | Ja | Ja (Standard) |
\d entspricht Unicode-Ziffern | Nein (nur ASCII ohne u) | Ja (PCRE2-Standard) | Nein (nur ASCII) |
5 häufige Fallen
- Katastrophales Backtracking: Ein Muster wie
(a+)+bauf einer langen Folge von 'a' ohne 'b' löst exponentielles Backtracking aus und kann Ihre Anwendung einfrieren. Vermeiden Sie verschachtelte Quantifikatoren auf überlappenden Mustern. Testen Sie immer mit langen, nicht-passenden Eingaben. - \d und Unicode-Ziffern: Ohne das Flag
uentspricht\dnur den ASCII-Ziffern 0-9, nicht arabisch-indischen Ziffern (٠-٩) oder anderen Unicode-Formen. Fügen Sieuhinzu und verwenden Sie\p{N}für alle Unicode-Ziffern. - ^ und $ ohne das m-Flag: Standardmäßig passen
^und$auf den Anfang und das Ende der gesamten Zeichenkette. Für zeilenweise Anker bei mehrzeiliger Eingabe fügen Sie das Flagmhinzu. - Gieriger Quantifikator, der zu viel frisst:
<.+>auf<b>Text</b>passt von der ersten<bis zur letzten>. Verwenden Sie den faulen<.+?>, um je ein Tag zu erfassen. - Nicht escapte Punkte in Domänenmustern: Der Punkt entspricht jedem Zeichen.
beispiel.depasst auch aufbeispielXde. Escapen Sie literale Punkte:beispiel\.de.