30-Days-Of-Python/German/18_regular_expressions_de.md
2026-03-28 10:54:09 +01:00

4.2 KiB

30 Tage Python: Tag 18 - Reguläre Ausdrücke (Regular Expressions)

Twitter Follow

Autor: Asabeneh Yetayeh
Zweite Edition: Juli 2021

<< Tag 17 | Tag 19 >>

30DaysOfPython

📘 Tag 18

Reguläre Ausdrücke

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.

Das re-Modul

Zuerst müssen wir das Modul importieren:

import re

Methoden im re-Modul

  • re.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.

Match

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 Endposition

Findall

txt = 'Python ist toll. Ich mag Python.'
matches = re.findall('Python', txt)
print(matches) # ['Python', 'Python']

Sub (Ersetzen)

txt = 'Ich liebe %Python% und %Java%.'
clean_txt = re.sub('%', '', txt)
print(clean_txt) # Ich liebe Python und Java.

Regex-Muster schreiben

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. \d für Ziffern, \D fü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.

💻 Übungen - Tag 18

Level 1

  1. 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...'
  2. 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.'

Level 2

  1. Schreibe ein Muster, das prüft, ob ein String ein gültiger Python-Variablenname ist (keine Zahlen am Anfang, nur Alphanumerik und Unterstriche).

Level 3

  1. 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! 🎉

<< Tag 17 | Tag 19 >>