Regex Cheat Sheet Python
Okay, lasst uns ehrlich sein: Reguläre Ausdrücke. Oder, wie ich sie liebevoll nenne: Regex. Werden wir je wirklich Freunde werden? Ich habe da so meine Zweifel. Aber hey, Python und Regex... sie sind halt ein Team. Wie Erdnussbutter und Gelee. Oder vielleicht eher wie Ketchup und Eis. Gewöhnungsbedürftig.
Hier ist also mein – sagen wir mal – etwas vereinfachter Regex Spickzettel für Python. Erwarten Sie keine Wunder. Und entschuldigen Sie, wenn er stellenweise etwas... unkonventionell ist. Ich bin ja auch nur ein Mensch (oder eher ein Programm, das vorgibt, ein Mensch zu sein!).
Die Basics: Einfache Suche
Also, zuerst mal das Offensichtliche. `re.search()` ist dein Freund. Oder zumindest ein Bekannter, den du ab und zu mal anrufst, wenn du Umzugskartons brauchst. Es sucht nach einem Muster in einem Text.
Nehmen wir an, du suchst nach dem Wort "Katze" in einem Satz. Dein Regex wäre einfach... "Katze". Wahnsinn, oder?
Unpopuläre Meinung: Ich finde, "Katze" sollte immer gefunden werden. Egal ob gross- oder kleingeschrieben. Das wäre doch logisch, oder?
Ein paar Symbole zum Merken (oder Vergessen):
- `.` (Punkt): Steht für *irgendein* Zeichen. Ausser einem Zeilenumbruch. Weil Zeilenumbrüche sind einfach kompliziert.
- `*` (Stern): Null oder mehr Vorkommnisse des vorherigen Zeichens. Super, um sich vorzustellen, dass man unendlich viel Pizza essen kann, ohne zuzunehmen.
- `+` (Plus): Ein oder mehr Vorkommnisse. Also mindestens eine Pizza!
- `?` (Fragezeichen): Null oder ein Vorkommnis. Vielleicht Pizza? Vielleicht nicht. Das Leben ist voller Unsicherheiten.
Spezielle Zeichen (Achtung, Stolpergefahr!)
Jetzt wird's ein bisschen wilder. Hier kommen die Zeichen, die dich nachts wachhalten:
- `\d`: Eine Ziffer. Denk an "digit". Nicht an "Dackel". Obwohl... ein Dackel mit einer Ziffer auf dem Rücken wäre schon cool.
- `\w`: Ein "Wortzeichen". Buchstaben, Zahlen, Unterstrich. Alles, was so in einem Passwort vorkommen könnte.
- `\s`: Ein Whitespace. Leerzeichen, Tabulatoren, Zeilenumbrüche (die komplizierten!).
Und dann gibt es noch die, die du escapen musst (mit einem Backslash \ davor). Weil sie sonst eine spezielle Bedeutung haben. Wie der Punkt, der Stern, das Plus, das Fragezeichen… und gefühlt noch hundert andere.
Unpopuläre Meinung: Warum müssen wir überhaupt escapen? Könnten wir nicht einfach alle Sonderzeichen so behandeln, wie sie sind? Wäre das nicht einfacher? (Antwort: Wahrscheinlich nicht, aber man darf ja mal träumen.)
Gruppierungen und Alternativen
Mit Klammern `()` kannst du Gruppen definieren. Das ist nützlich, um Teile des gefundenen Texts zu extrahieren. Oder um deine Regex übersichtlicher zu gestalten (was meistens nicht klappt).
Das Pipe-Zeichen `|` bedeutet "oder". Also "Katze | Hund" findet entweder "Katze" oder "Hund". Praktisch, wenn du dich nicht entscheiden kannst.
Beispiele, die vielleicht helfen (oder dich noch mehr verwirren):
- `(\d{3})-(\d{3})-(\d{4})`: Findet eine amerikanische Telefonnummer im Format 123-456-7890. (Achtung: Funktioniert nur in Amerika!)
- `[a-zA-Z]+`: Findet ein oder mehrere Buchstaben (egal ob gross oder klein).
- `^Hello`: Findet "Hello" nur am Anfang der Zeichenkette.
- `World$`: Findet "World" nur am Ende der Zeichenkette.
Python spezifische Regex-Funktionen
In Python hast du neben `re.search()` noch ein paar andere nützliche Funktionen:
- `re.findall()`: Findet *alle* Vorkommnisse eines Musters und gibt sie als Liste zurück.
- `re.sub()`: Ersetzt Vorkommnisse eines Musters durch etwas anderes. Super für Textverarbeitung. Oder um unerwünschte Emojis zu entfernen.
- `re.compile()`: Kompiliert ein Regex-Muster. Macht das Suchen schneller, wenn du das gleiche Muster oft verwendest. (Und gibt dir das Gefühl, etwas richtig Kompliziertes zu tun.)
Und das war's! Mein (sehr) kurzer und (wahrscheinlich) unvollständiger Regex-Spickzettel. Viel Glück! Du wirst es brauchen. Und denk daran: Regex ist wie ein Witz. Wenn du ihn erklären musst, ist er nicht gut.
Unpopuläre Meinung: Regex sollte durch KI ersetzt werden. Einfach sagen, was man will, und die KI bastelt den Regex. Wer ist dabei?
PS: Wenn du jetzt sagst, dass Regex gar nicht so schlimm ist… dann bist du entweder ein Genie oder hast noch nie versucht, eine E-Mail-Adresse zu validieren.
