← Alle LernbereicheWerkzeuge

Reguläre Ausdrücke

Muster lesen, schreiben und sicher ausprobieren.

01

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.

02

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.
03

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.

04

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.
05

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.

06

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.
07

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.
08

Beispiel

Eine einfache deutsche Postleitzahl besteht aus genau fünf Ziffern. Fachlich gültige Postleitzahlen werden dadurch allein noch nicht geprüft.

^\d{5}$
09

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}$
10

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.

Wissen anwenden

Prüfe die Grundlagen in einer kurzen Übung.

Zur Übung ↗