...
Kontakt Kontakt

Regex-Spickzettel: jedes Token erklärt, mit Beispielen zum Kopieren

Regex Cheat Sheet: The Syntax That Matters, Ready Patterns, and the Bugs Everyone Hits Regex Cheat Sheet: The Syntax That Matters, Ready Patterns, and the Bugs Everyone Hits

Reguläre Ausdrücke sind eine der wenigen Fähigkeiten, die in jeder Sprache und jedem Editor funktionieren – und eine der wenigen, die man alle sechs Monate wieder nachschlagen muss. Dieser Spickzettel erklärt jedes Token in einem Satz, gibt ein Beispiel dazu und endet mit den Mustern, die im Alltag am häufigsten gebraucht werden. Alle Beispiele können Sie direkt in den Regex-Tester einfügen.

Regex-Grundbausteine

Token Bedeutung Beispiel
. Beliebiges Zeichen außer Zeilenumbruch a.c trifft „abc“, „a1c“
d w s Ziffer, Wortzeichen (a–z, 0–9, _), Leerraum ddd trifft „123“
D W S Das jeweilige Gegenteil D+ trifft „abc“
b Wortgrenze bistb trifft „ist“, nicht „Liste“
^ $ Anfang / Ende (der Zeile mit Flag m) ^Hallo
Sonderzeichen entwerten . trifft einen echten Punkt

Zeichenklassen

  • [abc] eines der Zeichen a, b, c
  • [^abc] jedes Zeichen außer a, b, c
  • [a-z], [0-9], [A-Za-zÄÖÜäöüß] Bereiche – Umlaute müssen explizit hinein
  • Innerhalb von Klammern verlieren die meisten Sonderzeichen ihre Bedeutung: [.] ist ein echter Punkt

Quantoren

Token Bedeutung
* 0 oder mehr
+ 1 oder mehr
? 0 oder 1
{3} {2,5} {2,} genau 3, 2 bis 5, mindestens 2
*? +? ?? „faul“: so wenig wie möglich

Der Klassiker: <.+> auf „<b>fett</b>“ trifft den ganzen String, weil + gierig ist. <.+?> trifft nur „<b>“.

Gruppen

  • (abc) Fanggruppe – der Treffer steht als $1, $2 … zur Verfügung
  • (?:abc) nicht fangende Gruppe – nur zum Gruppieren, schneller
  • (?<jahr>d{4}) benannte Gruppe – im Ersatz als $<jahr>
  • a|b Alternative: „a oder b“; Klammern setzen, um die Reichweite zu begrenzen: gr(a|ü)n
  • 1 Rückverweis: (w)1 trifft Doppelbuchstaben wie „ll“

Lookarounds

Token Bedeutung Beispiel
(?=x) gefolgt von x (nicht Teil des Treffers) d+(?= €) trifft „49“ in „49 €“
(?!x) nicht gefolgt von x bfoo(?!bar)
(?<=x) vorangestellt x (?<=€)d+
(?<!x) nicht vorangestellt x (?<!d)d{4}(?!d) – genau vier Ziffern

Flags

  • g alle Treffer statt nur den ersten
  • i Groß-/Kleinschreibung ignorieren
  • m ^ und $ gelten pro Zeile
  • s . trifft auch Zeilenumbrüche
  • u Unicode – nötig für Emojis und p{L}
  • y „sticky“: nur an der aktuellen Position

Die zehn Muster, die man ständig braucht

  1. E-Mail (pragmatisch): ^[w.+-]+@[w-]+.[w.-]+$
  2. URL: https?://[^s/$.?#].[^s]*
  3. Datum TT.MM.JJJJ: ^(0[1-9]|[12]d|3[01]).(0[1-9]|1[0-2]).d{4}$
  4. ISO-Datum: ^d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]d|3[01])$
  5. IPv4: ^((25[0-5]|2[0-4]d|1?d?d).){3}(25[0-5]|2[0-4]d|1?d?d)$
  6. Deutsche PLZ: ^d{5}$
  7. Telefon (locker): ^+?[ds()/-]{7,}$
  8. Hex-Farbe: ^#([0-9a-fA-F]{3}){1,2}$
  9. Whitespace trimmen: ^s+|s+$ → ersetzen durch nichts
  10. Doppelte Leerzeichen: {2,} → ersetzen durch ein Leerzeichen

Drei Fehler, die jeder macht

  1. Gierige Quantoren bei HTML oder Anführungszeichen – +? verwenden.
  2. Punkt nicht entwertet: example.com trifft auch „exampleXcom“.
  3. g-Flag vergessen und sich wundern, warum nur der erste Treffer ersetzt wird.

Ersetzen mit Gruppen

Muster (w+)@(w+).de, Ersatz $2:$1 macht aus „max@firma.de“ ein „firma:max“. Benannte Gruppen: $<name>. Der komplette Treffer ist $&.

Advertisement

Jetzt ausprobieren: Regex-Tester

Kostenlos, läuft im Browser, nichts wird hochgeladen, keine Anmeldung.

Tool öffnen →
Add a comment Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Submit Comment

Advertisement
Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.