Regex Cheat Sheet Python

Hey du! Lust auf 'ne kleine Regex-Reise mit Python? Keine Angst, das wird kein staubtrockener Trip! Stell dir vor, Regex ist wie 'ne supercoole Detektivsprache für Text.
Was ist Regex überhaupt?
Regex, kurz für Regular Expression, ist im Grunde ein Muster. Ein Muster, das du benutzt, um Text zu finden, zu verändern oder zu validieren. Denk an 'ne Zauberformel für Text.
Python liebt Regex! Mit dem re Modul hast du die Power, Texte zu durchforsten, als wärst du Sherlock Holmes persönlich.
Must Read
Der Regex-Spickzettel für Python-Abenteurer
Los geht's mit den Basics! Keine Panik, das ist einfacher als es klingt. Versprochen!
. (Punkt): Platzhalter für irgendein Zeichen (außer einem Zeilenumbruch). Stell dir vor, es ist ein Joker!
^ (Caret): Zeigt an, dass das Muster am Anfang der Zeichenkette passen muss. "Hey, hier geht's los!"
$ (Dollarzeichen): Das Muster muss am Ende passen. "Und hier ist Schluss!"
[] (Eckige Klammern): Definiert eine Zeichenklasse. [aeiou] findet jeden Vokal.

[^ ] (Negierte eckige Klammern): Findet alles außer die Zeichen in den Klammern. [^0-9] findet alles, was keine Zahl ist.
* (Stern): Null oder mehr Vorkommnisse des vorherigen Zeichens oder der Gruppe. a findet "", "a", "aa", "aaa"...
+ (Plus): Ein oder mehr Vorkommnisse. a+ findet "a", "aa", "aaa", aber nicht "".
? (Fragezeichen): Null oder ein Vorkommnis. a? findet "" oder "a".
{n} (Geschweifte Klammern): Genau n Vorkommnisse. a{3} findet "aaa".
{n,m} (Geschweifte Klammern mit Komma): Zwischen n und m Vorkommnisse. a{2,4} findet "aa", "aaa" oder "aaaa".

| (Pipe): "Oder". a|b findet "a" oder "b".
() (Klammern): Gruppiert Teile des Musters. Super nützlich, um später auf die passenden Teile zuzugreifen!
\d: Eine Ziffer (0-9). Faul sein ist erlaubt!
\w: Ein "Wort"-Zeichen (Buchstaben, Zahlen, Unterstrich). Kurz für [a-zA-Z0-9_].
\s: Ein Whitespace-Zeichen (Leerzeichen, Tab, Zeilenumbruch).

\D, \W, \S: Das Gegenteil von \d, \w, \s. Also alles, was *keine Ziffer, kein "Wort"-Zeichen oder kein Whitespace ist.
Python's re Modul: Dein Regex-Werkzeugkasten
Das re Modul ist dein bester Freund. Hier ein paar wichtige Funktionen:
re.search(pattern, string): Sucht nach dem ersten Vorkommnis des Musters im String. Gibt ein Match-Objekt zurück, wenn's passt, sonst None.
re.findall(pattern, string): Findet alle Vorkommnisse des Musters und gibt eine Liste zurück.
re.match(pattern, string): Prüft, ob das Muster am Anfang des Strings passt. Gibt ein Match-Objekt zurück, wenn ja, sonst None.
re.sub(pattern, replacement, string): Ersetzt alle Vorkommnisse des Musters im String durch replacement. Mega praktisch für Textmanipulation!

Ein paar Regex-Tricks zum Angeben
Greedy vs. Non-Greedy: Regex ist von Natur aus "gierig" (greedy). Das bedeutet, es versucht, so viel wie möglich zu matchen. Mit ? nach einem Quantifizierer (wie * oder +) machst du ihn "nicht-gierig" (non-greedy), sodass er so wenig wie möglich matcht.
Raw Strings (r"..."): Benutze Raw Strings, um Backslashes nicht escapen zu müssen. r"\d+" ist viel lesbarer als "\\d+".
Flags: Mit Flags kannst du das Verhalten der Regex verändern. Zum Beispiel re.IGNORECASE (oder kurz re.I) für eine case-insensitive Suche.
Warum ist das alles so cool?
Weil du damit unglaubliche Dinge tun kannst! E-Mail-Adressen validieren, Daten aus Texten extrahieren, Code analysieren, Logdateien durchforsten... die Möglichkeiten sind endlos!
Regex ist vielleicht am Anfang ein bisschen knifflig, aber wenn du den Dreh raus hast, wirst du dich fühlen wie ein Superheld der Textmanipulation!
Also, ran an die Tasten und spiel ein bisschen mit Regex. Es macht wirklich Spaß!
