Ein regulärer Ausdruck (Regex) ist eine kompakte Beschreibung einer regulären Sprache. Er besteht aus Zeichen und Operatoren und beschreibt eine Menge von Zeichenketten. Reguläre Ausdrücke werden in Editoren, Suchwerkzeugen (grep), Programmiersprachen (Java Pattern, Python re) und in Compilerbau-Lexern eingesetzt.
Die formalen Grundoperatoren sind:
ab – erst a, dann ba|b – entweder a oder ba* – null oder mehr aa+ – eins oder mehr aa? – null oder ein a(ab)+ – gruppiert; mindestens ein abZeichenklassen erlauben das Matchen einer Auswahl:
[abc] – eines der Zeichen a, b oder c[a-z] – ein Kleinbuchstabe[0-9] – eine Ziffer (auch \d)[^0-9] – alles außer Ziffern. – ein beliebiges Zeichen (außer Zeilenumbruch)\s – Whitespace; \w – Wortzeichen^ – Zeilenanfang; $ – Zeilenende{n}, {n,m} – genau n bzw. n bis m WiederholungenDatum (TT.MM.JJJJ):
[0-3][0-9]\.[0-1][0-9]\.[0-9]{4}
Trifft z. B. 06.04.2026. Achtung: matcht auch ungültige Datumsangaben wie 39.19.2026; eine vollständige Prüfung wäre aufwändiger.
Einfache E-Mail:
[\w.-]+@[\w-]+\.[a-zA-Z]{2,}
Trifft z. B. anna.beispiel@schule.de.
Telefonnummer:
(\+49|0)[1-9][0-9]{1,14}
Trifft deutsche Nummern wie +491701234567 oder 01701234567.
Java:
import java.util.regex.*;
Pattern p = Pattern.compile("[0-9]{4}");
Matcher m = p.matcher("Jahr 2026");
if (m.find()) {
System.out.println(m.group()); // 2026
}
Python:
import re
m = re.search(r"[0-9]{4}", "Jahr 2026")
if m:
print(m.group()) # 2026Jeder reguläre Ausdruck kann mit der Thompson-Konstruktion in einen NEA übersetzt werden, der dann (Potenzmenge) zu einem DEA wird. Die drei Konzepte regulärer Ausdruck, reguläre Grammatik und endlicher Automat sind also drei Sichten auf dieselbe Klasse von Sprachen – ein zentrales Ergebnis der theoretischen Informatik.
Vergessenes Escapen von Sonderzeichen (\. statt . für den Punkt), „greedy“-Verhalten von * und + falsch eingeschätzt, fehlende Anker ^/$, sodass Teilzeichenketten unerwartet matchen.
Zusammenfassung: Reguläre Ausdrücke beschreiben reguläre Sprachen kompakt mit Konkatenation, Alternative und Kleene-Stern. Sie sind äquivalent zu endlichen Automaten und regulären Grammatiken.
Abitur-Tipp: Im Abitur immer an die Anker denken: ^...$ erzwingt das vollständige Matching der Eingabe und vermeidet falsche Treffer.