📘 Wichtigste Konzepte von re in Python (Regex)

🔹 Grundfunktionen

FunktionBeschreibungBeispiel
re.search()Sucht erstes Vorkommen des Mustersre.search(r'\d+', 'abc123')
re.findall()Gibt alle Treffer als Liste zurückre.findall(r'\w+', 'Hallo Welt!')
re.finditer()Iterator über alle Match-Objektefor m in re.finditer(r'\d+', text): ...
re.match()Prüft, ob das Muster am Anfang des Textes passtre.match(r'abc', 'abcdef')
re.fullmatch()Prüft, ob der gesamte String passtre.fullmatch(r'\d{3}', '123')
re.sub()Ersetzt Treffer durch neuen Text oder Funktionre.sub(r'\d+', 'X', 'A1 B2')
re.split()Zerlegt Text anhand eines Mustersre.split(r'[;,]', 'A;B,C')

🔹 Wichtige Musterbestandteile (Regex-Symbole)

SymbolBedeutungBeispiel
.Beliebiges Zeichen (außer Zeilenumbruch)a.c → abc, acc
^Zeilenanfang^Start
$ZeilenendeEnd$
*0 oder mehr Wiederholungenab* → a, ab, abb
+1 oder mehr Wiederholungenab+
?0 oder 1 Vorkommen (optional)colou?r
{n}Genau n Wiederholungena{3} → aaa
{n,}Mindestens n Wiederholungena{2,}
{n,m}Zwischen n und m Wiederholungena{2,4}
[]Zeichenklasse (z. B. [aeiou])
[^]Negierte Zeichenklasse[^0-9]
``Oder (Alternativen)
()Gruppierung / Capturing Group(ab)+

🔹 Spezielle Zeichenklassen

AusdruckBedeutung
\dZiffer (0–9)
\DKein Ziffernzeichen
\wWortzeichen (a–z, A–Z, 0–9, _)
\WKein Wortzeichen
\sWhitespace (Leerzeichen, Tab, \n)
\SKein Whitespace
\\Wörtlicher Backslash

🔹 Flags (Optionale Einstellungen)

FlagBeschreibung
re.IGNORECASE / re.IIgnoriert Groß-/Kleinschreibung
re.DOTALL / re.S. matcht auch Zeilenumbrüche
re.MULTILINE / re.M^/$ gelten zeilenweise
re.VERBOSE / re.XErmöglicht mehrzeilige lesbare Regex

🧠 Beispiele

# Alle Zahlen finden
re.findall(r'\d+', 'Hausnummer: 123, Postleitzahl: 45678')
 
# E-Mails extrahieren
re.findall(r'\b[\w.-]+@[\w.-]+\.\w+\b', text)
 
# Sections in LaTeX extrahieren
re.findall(r'\\section\{(.*?)\}(.*?)(?=\\section|\Z)', text, re.DOTALL)