Reguläre Ausdrücke
Muster lesen, schreiben und sicher ausprobieren.
Grundzeichen
Ein Literal passt auf sich selbst. Punkt steht für ein beliebiges Zeichen außer Zeilenumbruch. ^ und $ verankern Anfang und Ende. Zeichenklassen wie [a-z] wählen eine Menge von Zeichen.
Zeichenklassen und Kurzformen
[abc] passt auf genau eines der Zeichen, [a-z] auf einen Bereich und [^abc] auf Zeichen außerhalb der Klasse. In JavaScript steht \d für eine ASCII-Ziffer, \w für Buchstaben A–Z, Ziffern oder Unterstrich und \s für ein Leerraumzeichen. Für internationale Buchstaben sind Unicode-Property-Escapes mit u-Flag oft geeigneter.
^[0-9]+$ prüft eine nicht leere Folge aus ASCII-Ziffern.
Wiederholungen
* bedeutet null oder mehr, + eins oder mehr, ? null oder eins. {n} verlangt genau n Wiederholungen und {n,m} einen Bereich. Ein nachgestelltes ? macht eine Wiederholung lazy.
Anker, Alternativen und Escapes
^ und $ beziehen sich ohne m-Flag auf Anfang und Ende der Eingabe; mit m-Flag auf Zeilengrenzen. Das Zeichen | trennt Alternativen. Ein Backslash macht ein Sonderzeichen wie den Punkt zum Literal; in JavaScript-Quelltext müssen Backslashes in String-Literalen zusätzlich maskiert werden.
^(Ja|Nein)\.$ passt auf Ja. oder Nein.
Gruppen
Klammern bilden Capturing Groups, (?:...) eine Gruppe ohne Capture. Der senkrechte Strich bedeutet Alternative. Lookahead prüft folgenden Text, ohne ihn zum Treffer zu zählen.
Lookaround
Ein positiver Lookahead (?=...) verlangt passenden Text rechts vom Treffer, ein negativer (?!...) schließt ihn aus. Lookbehind (?<=...) und (?<!...) prüfen den Text links vom Treffer. Lookaround prüft Kontext, ohne ihn selbst als Teil des Treffers zurückzugeben.
(?<=€)\d+ findet Ziffern direkt nach einem Eurozeichen.
Greedy und lazy
Quantifizierer versuchen normalerweise möglichst viel Text zu erfassen. Ein nachgestelltes ? macht sie lazy, sodass zunächst die kleinste passende Teilfolge gesucht wird. Das Ergebnis hängt auch vom übrigen Muster ab.
<.+?> findet in <b>Text</b> zuerst <b>; <.+> kann beide Tags samt Text erfassen.
Beispiel
Eine einfache deutsche Postleitzahl besteht aus genau fünf Ziffern. Fachlich gültige Postleitzahlen werden dadurch allein noch nicht geprüft.
^\d{5}$Datum und MAC-Adresse
Ein Muster kann die Schreibweise prüfen, ohne fachliche Gültigkeit vollständig zu garantieren. Bei Datumsangaben muss etwa der Kalendertag zusätzlich validiert werden; bei MAC-Adressen sind sechs Hex-Oktette mit Trennzeichen zu prüfen.
Datum: ^\d{2}\.\d{2}\.\d{4}$ · MAC: ^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$Grenzen einfacher Muster
Ein kurzer Regex kann IPv4-ähnliche Schreibweisen finden, muss für gültige Adressen aber Werte 0 bis 255 und Wortgrenzen sauber prüfen. HTML sollte für echte Verarbeitung mit einem HTML-Parser statt einem allgemeinen Regex gelesen werden. Im Playground lassen sich Treffer, Gruppen und Fallstricke an eigenen Texten untersuchen.