webtrajans
de

Regex Grundlagen: Reguläre Ausdrücke mit Beispielen aus dem Alltag

Mit regulären Ausdrücken prüfen Sie Eingaben, finden Muster in Texten und ersetzen in Sekunden, wofür Sie sonst Stunden bräuchten. Dieser Spickzettel erklärt die wichtigsten Bausteine an deutschen Beispielen.

Aktualisiert: 5 Min. Lesezeit

Ein regulärer Ausdruck (englisch regular expression, kurz Regex) beschreibt ein Textmuster. Statt nach einem festen Wort zu suchen, sagen Sie: „Finde fünf Ziffern hintereinander“ oder „Finde alles zwischen zwei Anführungszeichen“. Regex wird in fast allen Programmiersprachen, in Editoren wie VS Code, in Tabellenprogrammen wie Google Sheets, in Formularvalidierungen und auf der Kommandozeile mit grep oder sed verwendet. Die Syntax wirkt anfangs kryptisch, folgt aber wenigen Regeln.

Die Beispiele in diesem Ratgeber nutzen die verbreitete Syntax von JavaScript, Python und PCRE. Probieren Sie jedes Muster direkt im Regex-Tester aus.

Spickzettel: Zeichen und Zeichenklassen

Muster Bedeutung Beispiel-Treffer
abc genau diese Zeichenfolge „abc“
. beliebiges Zeichen außer Zeilenumbruch „a“, „7“, „-“
\d Ziffer 0–9 „4“
\w Wortzeichen: A–Z, a–z, 0–9, _ „x“, „_“
\s Leerraum (Leerzeichen, Tab, Umbruch) „ “
\D, \W, \S jeweils das Gegenteil
[aeiou] eines der Zeichen „e“
[^0-9] jedes Zeichen außer Ziffern „x“
[A-Za-zÄÖÜäöüß] Buchstaben inklusive Umlaute „ö“
\. ein echter Punkt (maskiert) „.“

Umlaute: In JavaScript und vielen anderen Sprachen umfasst \w nur ASCII-Zeichen – „Müller“ wird an „ü“ getrennt. Nutzen Sie eine eigene Klasse wie oben oder Unicode-Eigenschaften: \p{L} (beliebiger Buchstabe) mit dem Flag u.

Quantoren: wie oft?

Muster Bedeutung
a* null oder mehr
a+ eins oder mehr
a? null oder eins (optional)
a{5} genau fünf
a{2,4} zwei bis vier
a{2,} mindestens zwei

Anker und Grenzen

Muster Bedeutung
^ Anfang des Textes (bzw. der Zeile mit Flag m)
$ Ende des Textes (bzw. der Zeile)
\b Wortgrenze

Ohne Anker findet \d{5} auch fünf Ziffern mitten in „Kundennummer 1234567“. Für Validierungen gehören ^ und $ fast immer dazu.

Gruppen und Alternativen

Muster Bedeutung
(abc) Gruppe, Inhalt wird gespeichert
(?:abc) Gruppe ohne Speichern
(?<jahr>\d{4}) benannte Gruppe
a|b a oder b
\1 Rückverweis auf Gruppe 1

Mit Gruppen können Sie beim Ersetzen umstellen. Beispiel: Deutsches Datum in ISO-Format wandeln.

Suchen:   (\d{2})\.(\d{2})\.(\d{4})
Ersetzen: $3-$2-$1
07.10.2026  →  2026-10-07

(In Python heißt der Rückverweis \3-\2-\1.)

Flags

Flag Wirkung
g alle Treffer finden, nicht nur den ersten
i Groß- und Kleinschreibung ignorieren
m ^ und $ gelten pro Zeile
s . passt auch auf Zeilenumbrüche
u Unicode-Modus (für \p{L}, Emojis usw.)

Praktische Beispiele

Postleitzahl Deutschland (5 Ziffern), Österreich/Schweiz (4 Ziffern):

^\d{5}$
^\d{4}$

Deutsche Telefonnummer, grob (optional +49 oder 0, dann Ziffern mit Leerzeichen, Bindestrich oder Schrägstrich):

^(?:\+49|0)[1-9][\d \-\/]{5,14}$

Passt auf „+49 30 1234567“, „030/1234567“ und „0171-1234567“. Telefonnummern sind sehr vielfältig; für eine vollständige Prüfung nutzen Programmierer Bibliotheken wie libphonenumber.

Datum TT.MM.JJJJ:

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

Das Muster schließt „32.13.2026“ aus, erkennt aber nicht, dass es keinen 31. April gibt. Solche Logik gehört in den Code, nicht in die Regex.

E-Mail-Adresse, pragmatisch:

^[^\s@]+@[^\s@]+\.[^\s@]{2,}$

Fängt fehlende @-Zeichen und Leerzeichen ab, ohne gültige Adressen mit Plus-Zeichen oder Umlaut-Domains zu blockieren.

Deutsche IBAN (Format, ohne Prüfziffer):

^DE\d{2}\s?(?:\d{4}\s?){4}\d{2}$

Ob die Prüfziffer stimmt, zeigt der IBAN-Prüfer; wie das Verfahren funktioniert, erklärt der Ratgeber IBAN: Aufbau und Prüfung.

Gierig oder genügsam

Quantoren sind standardmäßig gierig: Sie nehmen so viel Text wie möglich.

Text:     <b>Preis</b> und <b>Menge</b>
<b>.*</b>    → <b>Preis</b> und <b>Menge</b>   (alles)
<b>.*?</b>   → <b>Preis</b>                    (nur bis zum ersten Ende)

Das Fragezeichen nach dem Quantor macht ihn genügsam (lazy). Alternativ ist eine negierte Klasse oft präziser und schneller: <b>[^<]*</b>.

Typische Fallstricke

  • Punkt nicht maskiert: www.example.de passt auch auf „wwwXexampleYde“. Richtig: www\.example\.de.
  • Anker vergessen: Validierung ohne ^…$ akzeptiert Müll vor und nach dem Treffer.
  • HTML mit Regex parsen: Für einfache Suchen okay, für verschachtelte Strukturen einen echten Parser verwenden.
  • Katastrophales Backtracking: Verschachtelte Quantoren wie (a+)+$ können bei bestimmten Eingaben extrem lange rechnen. Bei Benutzereingaben auf Servern ist das ein Sicherheitsrisiko (ReDoS).
  • Unterschiedliche Dialekte: Lookbehind, benannte Gruppen oder \p{} werden nicht überall gleich unterstützt. Testen Sie in der Zielumgebung.

Regex kommt oft zusammen mit strukturierten Daten zum Einsatz, etwa bei der Prüfung von Feldern in JSON; siehe JSON Grundlagen.

Regex in Werkzeugen des Alltags

Reguläre Ausdrücke funktionieren nicht nur im Code:

  • VS Code, Notepad++, Sublime: Im Suchen-und-Ersetzen-Dialog das Symbol .* aktivieren. Gruppen werden mit $1 eingefügt.
  • Google Sheets: Die Funktionen REGEXMATCH, REGEXEXTRACT und REGEXREPLACE prüfen, extrahieren und ersetzen in Zellen, z. B. =REGEXEXTRACT(A2; "\d{5}") für eine Postleitzahl.
  • Excel: Neuere Versionen von Microsoft 365 bieten Funktionen wie REGEXTEST und REGEXEXTRACT; ältere Versionen benötigen Power Query oder Makros.
  • Kommandozeile: grep -E '^[0-9]{5}$' plz.txt filtert Zeilen, sed -E 's/([0-9]+)/[\1]/' ersetzt (\d kennt sed nicht).
  • HTML-Formulare: Das Attribut pattern="\d{5}" prüft Eingaben bereits im Browser, ersetzt aber nie die Prüfung auf dem Server.

Checkliste

  • Muster mit ^ und $ verankern, wenn ganze Eingaben geprüft werden.
  • Sonderzeichen wie . + ? ( ) [ ] { } \ | ^ $ bei Bedarf maskieren.
  • Umlaute bewusst behandeln (\p{L} mit u).
  • Gierige Quantoren durch ? oder negierte Klassen zähmen.
  • Muster mit echten Beispielen im Regex-Tester prüfen, auch mit Gegenbeispielen.

Häufige Fragen

Wie prüfe ich eine deutsche Postleitzahl mit Regex?

Mit ^\d{5}$ prüfen Sie auf genau fünf Ziffern. Für Österreich und die Schweiz sind es vier Ziffern: ^\d{4}$.

Was bedeutet .* in einem regulären Ausdruck?

Der Punkt steht für ein beliebiges Zeichen (außer Zeilenumbruch), der Stern für null oder mehr Wiederholungen. .* passt also auf beliebig viel Text und ist gierig: Er nimmt so viel wie möglich.

Was ist der Unterschied zwischen gierig und genügsam?

Gierige Quantoren wie * und + nehmen so viele Zeichen wie möglich, genügsame wie *? und +? so wenige wie möglich. Im Text "a" und "b" findet ".*" alles vom ersten bis zum letzten Anführungszeichen, ".*?" nur "a".

Kann man E-Mail-Adressen zuverlässig mit Regex prüfen?

Nur grob. Ein einfaches Muster fängt Tippfehler ab, die volle Spezifikation ist aber zu komplex. Ob eine Adresse existiert, zeigt nur eine Bestätigungs-E-Mail.

Weitere Ratgeber