Ein regulärer Ausdruck (Regular Expression oder kurz RegEx) ist eine spezielle Zeichenfolge, die hilft, Muster in Texten zu finden. RegEx wird verwendet, um Daten zu validieren, zu suchen oder zu ersetzen. In Python nutzen wir dafür das eingebaute Modul re.
Zuerst müssen wir das Modul importieren:
import rere.match(): Sucht nur am Anfang der ersten Zeile.re.search(): Sucht im gesamten String nach dem ersten Vorkommen.re.findall(): Gibt eine Liste aller Treffer zurück.re.split(): Teilt den String an den Stellen, an denen das Muster passt.re.sub(): Ersetzt einen oder mehrere Treffer durch einen neuen Text.
import re
txt = 'Ich liebe es, Python zu lernen'
match = re.match('Ich liebe', txt, re.I) # re.I ignoriert Groß/Kleinschreibung
print(match) # <re.Match object; span=(0, 9), match='Ich liebe'>match = re.search('Python', txt, re.I)
print(match.span()) # (14, 20) - Start- und Endpositiontxt = 'Python ist toll. Ich mag Python.'
matches = re.findall('Python', txt)
print(matches) # ['Python', 'Python']txt = 'Ich liebe %Python% und %Java%.'
clean_txt = re.sub('%', '', txt)
print(clean_txt) # Ich liebe Python und Java.Um ein Regex-Muster zu definieren, nutzen wir in Python "Raw Strings" mit einem vorangestellten r, z. B. r'apple'.
Wichtige Meta-Charaktere:
[]: Ein Zeichensatz (z. B.[a-z]für alle Kleinbuchstaben).\: Maskiert Sonderzeichen (z. B.\dfür Ziffern,\Dfür Nicht-Ziffern)..: Jedes Zeichen außer Zeilenumbruch.^: Beginnt mit (z. B.^Hallo).$: Endet mit (z. B.Welt$).*: Null oder mehr Male.+: Ein oder mehr Male.?: Null oder ein Mal (optional).{n}: Genau n Mal.|: Entweder oder (z. B.Apfel|Birne).(): Gruppierung.
- Was ist das häufigste Wort im folgenden Absatz? (Nutze Regex zur Reinigung).
paragraph = 'I love teaching. If you do not love teaching what else can you love...' - Extrahiere alle Zahlen aus folgendem Text und berechne die Distanz zwischen den beiden am weitesten entfernten Punkten auf einer x-Achse:
'Die Positionen der Teilchen sind -12, -4, -3, -1, 0, 4 und 8.'
- Schreibe ein Muster, das prüft, ob ein String ein gültiger Python-Variablenname ist (keine Zahlen am Anfang, nur Alphanumerik und Unterstriche).
- Reinige den folgenden Text von Sonderzeichen (
%,$,@,&,#) und finde danach die drei häufigsten Wörter:sentence = '''%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;...'''
🎉 HERZLICEN GLÜCKWUNSCH! 🎉
