Regex-Muster
JSPCRE
//
Trefferergebnis
Kein TrefferZeichenklassen
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \d | Ziffer [0-9] | ✅ | ✅ | ✅ | ✅ |
| \D | Nicht-Ziffer [^0-9] | ✅ | ✅ | ✅ | ✅ |
| \w | Wortzeichen [a-zA-Z0-9_] | ✅ | ✅ | ✅ | ✅ |
| \W | Nicht-Wortzeichen | ✅ | ✅ | ✅ | ✅ |
| \s | Leerraum | ✅ | ✅ | ✅ | ✅ |
| \S | Nicht-Leerraum | ✅ | ✅ | ✅ | ✅ |
| . | Beliebiges Zeichen (außer Zeilenumbruch) | ✅ | ✅ | ✅ | ✅ |
| [abc] | Zeichenklasse (a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [^abc] | Negierte Klasse (nicht a/b/c) | ✅ | ✅ | ✅ | ✅ |
| [[:alpha:]] | POSIX Alpha-Klasse | ❌ | ✅ | ✅ | ❌ |
| [[:digit:]] | POSIX Ziffer-Klasse | ❌ | ✅ | ✅ | ❌ |
| \p{L} | Unicode-Buchstabe | ✅ | ✅ | ⚠️ | ✅ |
| \p{N} | Unicode-Zahl | ✅ | ✅ | ⚠️ | ✅ |
| \X | Unicode erweiterter Graphem-Cluster | ❌ | ✅ | ❌ | ❌ |
Quantoren
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| * | Null oder mehr | ✅ | ✅ | ✅ | ✅ |
| + | Ein oder mehr | ✅ | ✅ | ✅ | ✅ |
| ? | Null oder eins | ✅ | ✅ | ✅ | ✅ |
| {n} | Genau n-mal | ✅ | ✅ | ✅ | ✅ |
| {n,m} | Zwischen n und m-mal | ✅ | ✅ | ✅ | ✅ |
| *? | Null oder mehr (lazy) | ✅ | ✅ | ✅ | ✅ |
| +? | Ein oder mehr (lazy) | ✅ | ✅ | ✅ | ✅ |
| ?? | Null oder eins (lazy) | ✅ | ✅ | ✅ | ✅ |
| {n,m}? | Zwischen n und m (lazy) | ✅ | ✅ | ✅ | ✅ |
| *+ | Null oder mehr (possessiv) | ❌ | ✅ | ❌ | ✅ |
| ++ | Ein oder mehr (possessiv) | ❌ | ✅ | ❌ | ✅ |
| ?+ | Null oder eins (possessiv) | ❌ | ✅ | ❌ | ✅ |
Anker
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| ^ | Zeichenkettenanfang (Zeilenanfang im Multiline-Modus) | ✅ | ✅ | ✅ | ✅ |
| $ | Zeichenkettenende (Zeilenende im Multiline-Modus) | ✅ | ✅ | ✅ | ✅ |
| \b | Wortgrenze | ✅ | ✅ | ✅ | ✅ |
| \B | Nicht-Wortgrenze | ✅ | ✅ | ✅ | ✅ |
| \A | Absoluter Zeichenkettenanfang | ❌ | ✅ | ✅ | ✅ |
| \Z | Absolutes Zeichenkettenende (vor Zeilenumbruch) | ❌ | ✅ | ✅ | ✅ |
| \z | Ganzes Ende (nach Zeilenumbruch) | ❌ | ✅ | ✅ | ❌ |
| \G | Ende des vorherigen Treffers | ❌ | ✅ | ✅ | ✅ |
Gruppen & Referenzen
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (...) | Erfassungsgruppe | ✅ | ✅ | ✅ | ✅ |
| (?:...) | Nicht-erfassende Gruppe | ✅ | ✅ | ✅ | ✅ |
| (?<name>...) | Benannte Gruppe (JS/Java-Stil) | ✅ | ⚠️ | ✅ | ✅ |
| (?P<name>...) | Benannte Gruppe (Python-Stil) | ❌ | ✅ | ✅ | ❌ |
| \1 | Rückreferenz auf Gruppe N | ✅ | ✅ | ✅ | ✅ |
| $1 | Ersetzungsreferenz auf Gruppe N | ✅ | ❌ | ❌ | ✅ |
| \k<name> | Benannte Rückreferenz | ✅ | ✅ | ✅ | ✅ |
| (?|...) | Branch-Reset-Gruppe | ❌ | ✅ | ❌ | ❌ |
| (?>...) | Atomare Gruppe (kein Backtracking) | ❌ | ✅ | ❌ | ✅ |
Lookaround
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?=...) | Positiver Lookahead | ✅ | ✅ | ✅ | ✅ |
| (?!...) | Negativer Lookahead | ✅ | ✅ | ✅ | ✅ |
| (?<=...) | Positiver Lookbehind | ✅ | ✅ | ✅ | ✅ |
| (?<!...) | Negativer Lookbehind | ✅ | ✅ | ✅ | ✅ |
Modifikatoren
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| (?i) | Groß-/Kleinschreibung ignorieren | ✅ | ✅ | ✅ | ✅ |
| (?-i) | Groß-/Kleinschreibung beachten | ❌ | ✅ | ❌ | ⚠️ |
| (?m) | Multiline (^/$ treffen Zeilenanfang/-ende) | ✅ | ✅ | ✅ | ✅ |
| (?s) | Dotall (. trifft Zeilenumbruch) | ✅ | ✅ | ⚠️ | ✅ |
| (?x) | Erweitert (Leerraum und #-Kommentare ignorieren) | ❌ | ✅ | ✅ | ✅ |
| (?i:...) | Inline Groß-/Kleinschreibung ignorieren | ✅ | ✅ | ❌ | ✅ |
PCRE Erweitert
| Syntax | Bedeutung | JS | PCRE | Python | Java |
|---|---|---|---|---|---|
| \K | Trefferstart zurücksetzen | ❌ | ✅ | ❌ | ❌ |
| (*SKIP) | Aktuellen Treffer überspringen | ❌ | ✅ | ❌ | ❌ |
| (*FAIL) | Treffer erzwingen lassen | ❌ | ✅ | ❌ | ❌ |
| (?(cond)yes|no) | Bedingter Ausdruck | ❌ | ✅ | ❌ | ❌ |
| (?R) | Gesamtes Muster rekursiv | ❌ | ✅ | ❌ | ❌ |
| (?1) | Unterprogrammaufruf Gruppe 1 | ❌ | ✅ | ❌ | ❌ |