Bibliothek

Fach wählen

Themen

Reguläre Ausdrücke

Was ist ein regulärer Ausdruck?

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.

Grundoperatoren

Die formalen Grundoperatoren sind:

  • Konkatenation: ab – erst a, dann b
  • Alternative: a|b – entweder a oder b
  • Kleene-Stern: a* – null oder mehr a
  • Plus: a+ – eins oder mehr a
  • Optional: a? – null oder ein a
  • Klammern: (ab)+ – gruppiert; mindestens ein ab
Zeichenklassen und Sonderzeichen

Zeichenklassen 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 Wiederholungen
Praktische Beispiele

Datum (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.

Regex in Java und Python

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())  # 2026
Zusammenhang mit Automaten

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

Häufige Fehler

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.