Ein regulärer Ausdruck (kurz: Regex) ist eine spezielle Syntax, um ein Muster innerhalb eines Textes zu beschreiben. \d{4} bedeutet zum Beispiel „vier Ziffern hintereinander”, und [A-Z][a-z]+ bedeutet „ein Wort, das mit einem Großbuchstaben beginnt”. Regex wird für Formularvalidierung (Telefonnummern, E-Mail-Adressen, Kreditkartenformate), Logdatei-Analyse, Suchen-und-Ersetzen und Datenextraktion verwendet — und nahezu jede Programmiersprache, darunter JavaScript, Python, PHP und Java, unterstützt eine sehr ähnliche Syntax.
Warum ist das Testen eines Regex-Musters wichtig?
. statt \. zu verwenden), kann das zu unerwarteten Treffern führen. Dein Muster live gegen echte Beispieldaten zu testen und visuell zu prüfen, welche Teile tatsächlich passen, ist der zuverlässigste Weg, Fehler zu erkennen, bevor ein fehlerhaftes Muster in Produktion geht.Was ist eine Capture-Gruppe?
(abc) bildet eine „Capture-Gruppe” und macht diesen Teil des Treffers separat zugänglich. (?:abc) ist eine nicht-erfassende Gruppe — sie gruppiert, ohne nummeriert zu werden. (?<name>abc) gibt einer Gruppe einen Namen (eine benannte Gruppe); auf das Ergebnis kann danach über Nummer oder Name zugegriffen werden.- Nummerierte Gruppe —
(\d{2})-(\d{2}): bei „12-34” ist Gruppe 1 = „12”, Gruppe 2 = „34”. - Benannte Gruppe —
(?<jahr>\d{4}): im Ergebnis übergroups.jahrzugänglich. - Nicht-erfassende Gruppe —
(?:abc)+: gruppiert wiederholtes „abc”, ohne es zu nummerieren.
Wie funktioniert Suchen & Ersetzen?
$1, $2… referenziert, bei benannten Gruppen mit $<name>. Wendet man zum Beispiel (\d{4})-(\d{2})-(\d{2}) mit dem Ersetzungstext $3.$2.$1 an, wird aus „2026-07-22” der Text „22.07.2026” (deutsches Datumsformat TT.MM.JJJJ). Ist das „g”-Flag nicht gesetzt, wird nur der erste Treffer ersetzt — probiere es live im Reiter „Ersetzen” oben aus.Was bewirken Regex-Flags?
g findet jeden Treffer (ohne dieses Flag nur den ersten); i schaltet die Groß-/Kleinschreibung-Empfindlichkeit ab; m lässt ^/$-Anker auf Anfang/Ende jeder Zeile statt nur der gesamten Zeichenkette passen; s (dotall) lässt . auch Zeilenumbrüche treffen; und u interpretiert das Muster nach Unicode-Codepoints. Flags werden als separate Option gesetzt, nicht innerhalb des Musters selbst angehängt.Gängige Regex-Symbole (Kurzübersicht)
| Symbol | Bedeutung | Beispiel |
|---|---|---|
| \d | Ziffer (0–9) | \d{4} → „2026” |
| \w | Wortzeichen (Buchstabe/Ziffer/_) | \w+ → „hallo_123” |
| \s | Leerraum (Leerzeichen/Tab/Zeilenumbruch) | \s+ → „ ” |
| ^ $ | Anfang und Ende von Text/Zeile | ^abc$ → genau „abc” |
| * + ? {n,m} | Quantoren (Wiederholung) | a{2,4} → „aa”.."aaaa” |
| (...) (?:...) (?<name>...) | Capture-/nicht-erfassende/benannte Gruppe | (\d+)-(\d+) |