Reguläre Ausdrücke (Regex) in Python

Reguläre Ausdrücke sind ein mächtiges Werkzeug, um Text nach Mustern zu durchsuchen. In diesem Beitrag lernst du, wie du Regex mit dem Modul re in Python einsetzt.

Teilen
Reguläre Ausdrücke (Regex) in Python

Hast du schon einmal versucht, aus einem langen Text alle E-Mail-Adressen herauszufiltern oder zu prüfen, ob eine Eingabe eine gültige Postleitzahl ist? Mit normalen String-Methoden wird das schnell mühsam. Hier kommen reguläre Ausdrücke ins Spiel. Sie beschreiben Suchmuster, mit denen du Text durchsuchen, prüfen und umbauen kannst. In Python steckt diese Funktionalität im eingebauten Modul re. In diesem Beitrag zeige ich dir die wichtigsten Grundlagen, damit du Regex sicher einsetzen kannst.

Was ist ein regulärer Ausdruck?

Ein regulärer Ausdruck (kurz Regex) ist eine kompakte Beschreibung eines Textmusters. Statt nach einem festen Wort zu suchen, suchst du nach einer Struktur, zum Beispiel "drei Ziffern, gefolgt von einem Bindestrich". Regex wird in fast allen Programmiersprachen unterstützt und ist eine universelle Fähigkeit, die sich lohnt.

In Python importierst du dafür einfach das Modul re. Damit stehen dir Funktionen wie search, match, findall und sub zur Verfügung.

import re

text = "Meine Nummer ist 0151-12345678."
treffer = re.search(r"\d{4}-\d{8}", text)
if treffer:
    print("Gefunden:", treffer.group())

Wichtige Metazeichen

Der eigentliche Trick bei Regex sind die Metazeichen. Sie stehen nicht für sich selbst, sondern für eine Klasse von Zeichen. Hier die wichtigsten:

  • \d steht für eine Ziffer (0 bis 9)
  • \w steht für ein Wortzeichen (Buchstabe, Ziffer oder Unterstrich)
  • \s steht für ein Leerzeichen oder einen Zeilenumbruch
  • . steht für ein beliebiges Zeichen
  • + bedeutet "ein- oder mehrmals", * bedeutet "null- oder mehrmals"

Wichtig ist der Buchstabe r vor dem String. Er erzeugt einen sogenannten Raw-String, sodass der Backslash nicht von Python umgedeutet wird. Verwende ihn bei Regex immer.

import re

text = "Anna 25, Ben 30, Clara 28"
zahlen = re.findall(r"\d+", text)
print(zahlen)  # ['25', '30', '28']

Suchen und finden

Es gibt mehrere Funktionen zum Suchen. re.search findet den ersten Treffer irgendwo im Text. re.match prüft nur den Anfang. re.findall gibt alle Treffer als Liste zurück. Schau dir den Unterschied an:

import re

text = "Hallo Welt, hallo Python"

print(re.search(r"hallo", text))   # findet 'hallo' an Position 13
print(re.match(r"hallo", text))    # None, da Text mit 'Hallo' beginnt
print(re.findall(r"[Hh]allo", text))  # ['Hallo', 'hallo']

Mit eckigen Klammern wie [Hh] definierst du eine Zeichenklasse: erlaubt ist hier entweder ein großes oder ein kleines H. So fängst du Schreibvarianten elegant ab.

Gruppen mit Klammern

Mit runden Klammern bildest du Gruppen. Damit kannst du Teile eines Treffers gezielt herausholen. Das ist praktisch, wenn du zum Beispiel ein Datum in Tag, Monat und Jahr zerlegen willst.

import re

datum = "Heute ist der 19.06.2026."
treffer = re.search(r"(\d{2})\.(\d{2})\.(\d{4})", datum)
if treffer:
    tag, monat, jahr = treffer.groups()
    print(f"Tag: {tag}, Monat: {monat}, Jahr: {jahr}")

Mit treffer.group(1) erreichst du die erste Gruppe, mit treffer.groups() bekommst du alle als Tupel. So lassen sich strukturierte Daten sauber auseinandernehmen.

Ersetzen mit re.sub

Regex ist nicht nur zum Suchen da. Mit re.sub ersetzt du gefundene Muster durch neuen Text. Das eignet sich hervorragend, um Daten zu bereinigen oder zu anonymisieren.

import re

text = "Kontakt: max@example.com oder lisa@firma.de"
anonym = re.sub(r"\w+@\w+\.\w+", "[E-Mail entfernt]", text)
print(anonym)  # Kontakt: [E-Mail entfernt] oder [E-Mail entfernt]

Tipp: Wenn du dasselbe Muster mehrfach brauchst, kompiliere es einmal mit re.compile. Das macht den Code lesbarer und etwas schneller.

Fazit

Reguläre Ausdrücke wirken am Anfang kryptisch, sind aber ein echtes Schweizer Taschenmesser für die Textverarbeitung. Mit den Metazeichen \d, \w und \s, den Quantoren + und * sowie Gruppen und re.sub deckst du schon einen großen Teil der typischen Aufgaben ab. Mein Tipp: Probiere deine Muster zuerst an kleinen Beispielen aus und baue sie Schritt für Schritt auf. So behältst du den Überblick und Regex wird schnell zu einem deiner Lieblingswerkzeuge.