Zum Inhalt springen
Toolbrik
Zurück zum Blog

Regex für den Alltag: die Muster, die du immer wieder brauchst

15. September 2026 · Verwandtes Tool: Tester für reguläre Ausdrücke

Reguläre Ausdrücke gelten als kryptisch, aber 90 % der realen Nutzung reduziert sich auf eine Handvoll Muster, die in jedem Projekt wiederkehren: eine E-Mail validieren, eine URL extrahieren, doppelte Leerzeichen bereinigen. Der Rest ist Googeln, wenn der seltene Sonderfall auftaucht.

Testen, bevor du es in Produktion schickst

Bevor du eine Regex in deinen Code einbaust, teste sie an mehreren echten Fällen — auch solchen, die nicht matchen sollten — im Regex-Tester. Er hebt jeden Treffer und jede erfasste Gruppe hervor, sodass du sofort siehst, ob das Muster zu locker oder zu streng ist.

Die Muster, die du immer brauchst

  • E-Mail (Basisvalidierung): ^[^\s@]+@[^\s@]+\.[^\s@]+$ — deckt nicht 100 % des RFC ab, reicht aber für Formulare.
  • Nur Ziffern: ^\d+$
  • Doppelte Leerzeichen: \s{2,} — nützlich zum Bereinigen von aus PDF oder Word eingefügtem Text.
  • URL mit Protokoll: ^https?:\/\/[^\s]+$
  • ISO-Datum (YYYY-MM-DD): ^\d{4}-\d{2}-\d{2}$
  • Slug (Kleinbuchstaben und Bindestriche): ^[a-z0-9]+(-[a-z0-9]+)*$

Die häufigsten Fehler

  1. Den Punkt nicht escapen. . bedeutet "beliebiges Zeichen", kein wörtlicher Punkt. Für eine Domain ist es \., nicht .
  2. Standardmäßig gierig. <.+> gegen <b>fett</b> matcht vom ersten < bis zum letzten >, nicht nur ein Tag. Nutze den faulen Quantor <.+?>, um beim ersten schließenden Tag zu stoppen.
  3. Das Muster nicht verankern. Ohne ^ und $ kann deine Regex nur einen Teil der Zeichenkette matchen und davor oder danach Müll durchlassen.
  4. [abc] mit (abc) verwechseln. Ersteres heißt "einer dieser drei Buchstaben", Letzteres "die exakte Sequenz abc" als Gruppe.

Benannte Gruppen, dein bester Freund

Wenn du mehrere Werte aus einer Zeichenkette extrahierst (Teile einer URL, ein Datum), nutze benannte Gruppen statt sie nach Position zu zählen: (?<jahr>\d{4})-(?<monat>\d{2})-(?<tag>\d{2}). Der Code, der das Ergebnis verarbeitet, wird dadurch viel lesbarer als match[1], match[2], match[3].

Kurz gesagt: Muster schreiben, an echten Grenzfällen testen, und erst dann in den Code einfügen.