developer

Regex-Spickzettel: Muster, die jeder Entwickler kennen sollte

Eine praktische Regex-Referenz mit praxisnahen Mustern für E-Mail-Validierung, URL-Matching, Datumsformate und mehr. Mit Erklärungen, Testbeispielen und häufigen Fehlern.

PureXio Team7. Januar 202511 Min. Lesezeit

Warum eine Regex-Referenz

Reguläre Ausdrücke gehören zu den mächtigsten und frustrierendsten Werkzeugen im Entwickler-Toolkit. Ein gut gemachter Regex kann Eingaben validieren, Daten extrahieren und Text in einer einzigen Zeile transformieren.

Dieser Spickzettel deckt die am häufigsten verwendeten Muster in der realen Entwicklung ab.

Grundlegende Syntax-Referenz

Zeichenklassen

| Muster | Bedeutung | Beispiel | |---|---|---| | . | Beliebiges Zeichen außer Zeilenumbruch | a.c trifft "abc", "a1c" | | \d | Beliebige Ziffer (0–9) | \d{3} trifft "123" | | \D | Beliebige Nicht-Ziffer | \D+ trifft "abc" | | \w | Wortzeichen (a–z, A–Z, 0–9, _) | \w+ trifft "hello_world" | | \s | Leerzeichen (Space, Tab, Newline) | \s+ trifft " " | | [abc] | Eines von a, b oder c | [aeiou] trifft Vokale | | [^abc] | Beliebiges Zeichen außer a, b, c | [^0-9] trifft Nicht-Ziffern | | [a-z] | Beliebiges Zeichen im Bereich a bis z | [A-Za-z] trifft Buchstaben |

Quantifizierer

| Muster | Bedeutung | |---|---| | * | Null oder mehr | | + | Eins oder mehr | | ? | Null oder eins | | {n} | Genau n Mal | | {n,m} | Zwischen n und m Mal |

Anker

| Muster | Bedeutung | |---|---| | ^ | Anfang des Strings | | $ | Ende des Strings | | \b | Wortgrenze |

Gruppen und Alternation

| Muster | Bedeutung | |---|---| | (abc) | Erfassungsgruppe | | (?:abc) | Nicht-erfassende Gruppe | | (?<name>abc) | Benannte Erfassungsgruppe | | a\|b | Alternation (oder) |

Praxismuster

E-Mail-Validierung

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Trifft: alice@beispiel.de, user.name+tag@domain.co.uk

Für Produktions-E-Mail-Validierung verwenden Sie HTML5 input type="email" oder eine dedizierte Bibliothek. Kein einzelner Regex kann alle gültigen E-Mail-Adressen per RFC 5322 validieren.

URL-Matching

https?:\/\/[^\s/$.?#].[^\s]*

Datumsformate

ISO 8601 (JJJJ-MM-TT):

^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$

Deutsches Format (TT.MM.JJJJ):

^(?:0[1-9]|[12]\d|3[01])\.(?:0[1-9]|1[0-2])\.\d{4}$

Diese validieren nur das Format — nicht ob das Datum gültig ist (z. B. 31. Februar würde bestehen). Für vollständige Datumsvalidierung eine Datums-Bibliothek verwenden.

IPv4-Adresse

^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$

Passwortstärke

Mindestens 8 Zeichen mit Groß-, Kleinbuchstabe, Ziffer und Sonderzeichen:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>]).{8,}$

Verwendet vier positive Lookaheads, um jede Anforderung unabhängig zu prüfen.

JavaScript-Regex-Flags

| Flag | Name | Effekt | |---|---|---| | g | Global | Alle Vorkommen finden | | i | Groß-/Kleinschreibung ignorieren | a trifft "a" und "A" | | m | Mehrzeilig | ^ und $ an Zeilengrenzen | | s | DotAll | . trifft Zeilenumbrüche | | u | Unicode | Volle Unicode-Unterstützung |

Performance: Katastrophales Backtracking vermeiden

Das gefährlichste Regex-Anti-Pattern sind verschachtelte Quantifizierer auf überlappenden Zeichenklassen:

(a+)+b

Dieses Muster verursacht exponentielles Backtracking bei Eingaben wie "aaaaaaaaaaaaaac".

Regeln zur Vermeidung:

  1. Niemals Quantifizierer auf derselben Zeichenklasse verschachteln: (a+)+, (a*)*
  2. Alternativen gegenseitig ausschließend machen
  3. Timeout für Regex-Ausführung in Produktionscode setzen

Tool verwenden

PureXio Regex-Tester — Muster live testen

Muster testen

Jeder Regex sollte getestet werden gegen:

  1. Gültige Eingaben die matchen sollen
  2. Ungültige Eingaben die nicht matchen sollen
  3. Grenzfälle — leere Strings, sehr lange Strings, Sonderzeichen, Unicode
  4. Adversarische Eingaben — Strings die Backtracking verursachen könnten

PureXios Regex-Tester läuft vollständig in Ihrem Browser — Ihre Testdaten verlassen niemals Ihr Gerät.

Häufig gestellte Fragen

Was ist der Unterschied zwischen .* und .*?

.* ist gierig — trifft so viele Zeichen wie möglich. .*? ist faul — trifft so wenige wie möglich. Bei <b>hallo</b> trifft <.*> den gesamten String, während <.*?> nur <b> trifft.

Wie matche ich einen literalen Punkt oder eine Klammer?

Sonderzeichen mit Backslash escapen: \. für einen Punkt, \[ für eine Klammer.

Wann sollte ich Regex NICHT verwenden?

Für strukturierte Formate (HTML, JSON, XML, CSV) — dedizierte Parser verwenden. Für komplexe Validierungslogik — Programmierlogik verwenden. Regex ist am besten für Mustersuche in unstrukturiertem oder semi-strukturiertem Text.

Zusammenfassung

Regex ist ein Werkzeug für Mustersuche, kein universeller Parser. Verwenden Sie die Muster in dieser Referenz als Ausgangspunkt, testen Sie gründlich und achten Sie auf Backtracking in performancekritischem Code.

Tool verwenden

Regex jetzt testen — Kostenlos, privat, kein Upload

#regex#entwickler#validierung#muster#spickzettel