WikiPlus

Reguläre Ausdrücke lernen — Der praktische Regex-Guide

Reguläre Ausdrücke sind eine der wertvollsten Fähigkeiten für Entwickler, Datenwissenschaftler und alle, die regelmäßig mit Texten arbeiten. Trotzdem scheuen viele den Einstieg, weil die Syntax auf den ersten Blick kryptisch wirkt. Dieser Guide erklärt reguläre Ausdrücke von Grund auf, mit praktischen Beispielen, die man sofort im WikiPlus Regex-Tester ausprobieren kann. Nach diesem Artikel versteht man die häufigsten Regex-Patterns und kann eigene schreiben.

Der erste Regex: Einfache Textsuche

Der einfachste Regex ist ein wörtlicher Text. Das Muster hallo trifft genau die Zeichenkette 'hallo' in einem Text. Kein Metazeichen, keine Sonderzeichen — was man eingibt, wird gesucht. Das ist der Ausgangspunkt. Jetzt wird es interessanter: Was, wenn man unabhängig von Groß-/Kleinschreibung suchen möchte? Mit dem Flag i (case-insensitive) trifft hallo auch 'Hallo', 'HALLO' oder 'HaLLo'. Im WikiPlus Regex-Tester sieht man sofort, wie sich das Flag auf die Treffer auswirkt. Der nächste Schritt: Metazeichen. Das Zeichen . trifft jedes beliebige Zeichen. Das Muster h.llo trifft 'hallo', 'hbllo', 'h9llo' und so weiter. Mit diesem Grundverständnis kann man bereits nützliche Muster erstellen.

Quantoren: Wie oft soll ein Muster matchen?

Quantoren bestimmen, wie oft ein vorhergehendes Element auftreten kann. Das ist eines der wichtigsten Konzepte in Regex. Der Stern * bedeutet null oder mehr Wiederholungen. Das bedeutet, das Element kann gar nicht oder beliebig oft vorkommen. Das Plus + bedeutet eine oder mehr Wiederholungen — das Element muss mindestens einmal vorkommen. Das Fragezeichen ? bedeutet genau null oder einmal — das Element ist optional. Geschweifte Klammern erlauben genaue Angaben: {3} bedeutet genau dreimal, {2,5} bedeutet zwei bis fünf Mal, {3,} bedeutet mindestens dreimal. Praktisches Beispiel: Das Muster \d+ trifft jede Folge von Ziffern (eine oder mehr). Das Muster \d{4} trifft genau vierstellige Zahlen — nützlich für Jahreszahlen oder PIN-Codes.

Regex für häufige Validierungsaufgaben

Reguläre Ausdrücke werden am häufigsten für die Validierung von Benutzereingaben verwendet. Hier sind bewährte Muster für typische Aufgaben. Deutsche Postleitzahlen: ^\d{5}$ — genau fünf Ziffern, Anfang bis Ende. Telefonnummern (flexibel): ^[+]?[\d\s\-()]{7,15}$ — optional Plus, dann Ziffern, Leerzeichen, Bindestriche und Klammern. Datum (YYYY-MM-DD): ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ — mit Monats- und Tagesvalidierung. Starkes Passwort (min. 8 Zeichen, Groß-/Kleinbuchstaben, Ziffer): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$. Diese Muster lassen sich im WikiPlus Regex-Tester sofort mit realen Beispieleingaben testen und anpassen.

Lookahead und Lookbehind: Fortgeschrittene Regex-Techniken

Lookahead und Lookbehind sind fortgeschrittene Regex-Features, die es ermöglichen, Bedingungen zu prüfen, ohne diese Teile in den Match einzuschließen. Positiver Lookahead (?=...) prüft, ob nach dem aktuellen Treffer ein bestimmtes Muster folgt. Negativer Lookahead (?!...) prüft, ob ein Muster nicht folgt. Lookbehind-Varianten prüfen das, was vor dem Match steht. Praktisches Beispiel: Das Muster \d+(?= Euro) trifft Zahlen, die von ' Euro' gefolgt werden, ohne ' Euro' selbst zu erfassen. Das ist nützlich für das Extrahieren von Preisen aus Text. Oder: \w+(?=@) trifft den lokalen Teil einer E-Mail-Adresse (alles vor dem @). Der WikiPlus Regex-Tester visualisiert auch diese komplexen Matches und macht das Debuggen von Lookahead-Mustern deutlich einfacher.

Häufig gestellte Fragen

Warum trifft mein Regex mehr als erwartet?
Häufige Ursache: fehlende Anker ^ und $. Ohne diese Anker trifft ein Muster überall im Text, nicht nur am Anfang oder Ende. Außerdem sind Quantoren standardmäßig gierig (greedy) und erfassen so viel wie möglich. Ein ? nach dem Quantor macht ihn nicht-gierig.
Wie kann ich in einem Regex nach einem Punkt oder anderen Metazeichen suchen?
Metazeichen wie . * + ? [ ] ( ) { } ^ $ \ | müssen durch einen vorangestellten Backslash escaped werden. Um nach einem echten Punkt zu suchen, verwendet man \. — ohne Backslash trifft . jedes beliebige Zeichen.
Ist es möglich, Regex für mehrere Zeilen gleichzeitig zu testen?
Ja, im WikiPlus Regex-Tester kann mehrzeiliger Text als Teststring eingegeben werden. Mit dem m-Flag (multiline) beziehen sich ^ und $ auf jede Zeile. Mit dem g-Flag werden alle Treffer im gesamten Text gefunden.