Einführung in reguläre Ausdrücke in Python
Die Arbeit mit Text gehört zu den häufigsten Aufgaben in der Programmierung. Reguläre Ausdrücke sind dabei ein unverzichtbares Werkzeug für vielfältige Herausforderungen – sei es das Parsen von HTML-Seiten, die Überprüfung von Datenformaten oder die Verarbeitung von Logdateien.
In Python steht für reguläre Ausdrücke das integrierte Modul re zur Verfügung. In diesem Leitfaden zeigen wir dir Schritt für Schritt, wie du reguläre Ausdrücke in Python einsetzt. Wir behandeln die wichtigsten Methoden wie re.search() und re.sub() und veranschaulichen ihre praktische Anwendung an realen Beispielen.
Grundlagen regulärer Ausdrücke
Definition und Zweck
Reguläre Ausdrücke (Regular Expressions oder RegEx) sind eine spezielle Sprache zur Beschreibung von Suchmustern in Texten. Mit ihnen kannst du Textteile nach bestimmten Regeln suchen, überprüfen und ersetzen.
Typische Aufgaben für reguläre Ausdrücke
Reguläre Ausdrücke in Python lösen ein breites Spektrum an Aufgaben:
- Validierung von E-Mail-Adressen und Telefonnummern
- Suche nach allen numerischen Werten in einem Text
- Ersetzen unerwünschter Zeichen und Datenbereinigung
- Extrahieren bestimmter Wörter oder Phrasen aus großen Texten
- Parsen strukturierter Daten
- Verarbeitung von Log- und Systemdateien
Vorbereitung
Import des Moduls re
Bevor du mit regulären Ausdrücken arbeitest, musst du das entsprechende Modul importieren:
import re
Grundlegende Zeichen und Konstrukte
Für die effektive Arbeit mit regulären Ausdrücken ist es wichtig, die grundlegenden Zeichen und ihre Bedeutung zu kennen:
| Zeichen | Bedeutung |
|---|---|
| . | Beliebiges Zeichen (außer Zeilenumbruch) |
| \d | Beliebige Ziffer (0-9) |
| \D | Beliebiges Nicht-Ziffern-Zeichen |
| \w | Buchstabe, Ziffer oder Unterstrich |
| \W | Alle Zeichen außer \w |
| \s | Leerzeichen, Tabulator, Zeilenumbruch |
| \S | Alle Zeichen außer Leerzeichen |
| ^ | Anfang der Zeile |
| $ | Ende der Zeile |
| [] | Zeichen aus einer bestimmten Menge |
| * | Null oder mehr Wiederholungen |
| + | Ein oder mehr Wiederholungen |
| {n,m} | Von n bis m Wiederholungen |
Wichtige Methoden für reguläre Ausdrücke
Methode re.search() – erstes Vorkommen finden
Die Methode re.search() sucht nach dem ersten Vorkommen eines bestimmten Musters in einer Zeichenkette. Sie gibt ein Match-Objekt zurück, wenn das Muster gefunden wird, oder None, wenn keine Übereinstimmung vorliegt.
import re
text = "E-Mail: example@mail.com"
match = re.search(r'\w+@\w+\.\w+', text)
if match:
print("E-Mail gefunden:", match.group())
Ergebnis der Ausführung:
E-Mail gefunden: example@mail.com
Erklärung des Suchmusters
Wir zerlegen das verwendete Muster in seine Bestandteile:
- \w+ – ein oder mehrere Buchstaben, Ziffern oder Unterstriche
- @ – das @-Zeichen (obligatorischer Bestandteil einer E-Mail)
- \. – der Punkt (wird mit Backslash maskiert)
- \w+ – die Top-Level-Domain
Methode re.findall() – alle Vorkommen finden
Wenn du alle Vorkommen eines Musters in einem Text finden möchtest, verwendest du die Methode findall(). Sie gibt eine Liste aller gefundenen Übereinstimmungen zurück.
text = "Preise: 100 Euro, 250 Euro, 350 Euro"
numbers = re.findall(r'\d+', text)
print(numbers) # ['100', '250', '350']
Methode re.sub() – Ersetzen nach Muster
Die Methode re.sub() ersetzt alle Vorkommen eines bestimmten Musters durch einen angegebenen Text.