Python RegEx: Reguläre Ausdrücke (RegEx) sind ein leistungsstarkes Werkzeug zur Mustererkennung und -bearbeitung in Texten. In Python wird das Modul re
verwendet, um reguläre Ausdrücke zu erstellen, zu analysieren und zu manipulieren. In diesem Abschnitt erfahren Sie, wie Sie reguläre Ausdrücke in Python nutzen können.
1. Importieren des re-Moduls
Bevor Sie reguläre Ausdrücke verwenden können, müssen Sie das re
-Modul importieren.
Beispiel
import re
2. Grundlegende Verwendung von regulären Ausdrücken
Muster suchen
Um ein Muster in einem Text zu suchen, verwenden Sie die Funktion re.search()
. Diese gibt ein Match-Objekt zurück, wenn das Muster gefunden wird, oder None
, wenn kein Treffer vorliegt.
Beispiel
text = "Ich liebe Programmierung in Python."
muster = r"Programmierung"
match = re.search(muster, text)
if match:
print("Muster gefunden:", match.group())
else:
print("Muster nicht gefunden.")
3. Übereinstimmungen finden
Um alle Vorkommen eines Musters in einem Text zu finden, verwenden Sie die Funktion re.findall()
. Diese gibt eine Liste aller Übereinstimmungen zurück.
Beispiel
text = "Python ist großartig. Ich liebe Python!"
muster = r"Python"
alle_uebereinstimmungen = re.findall(muster, text)
print("Gefundene Übereinstimmungen:", alle_uebereinstimmungen)
# Ausgabe: Gefundene Übereinstimmungen: ['Python', 'Python']
4. Ersetzen von Text
Um Teile eines Textes basierend auf einem Muster zu ersetzen, verwenden Sie die Funktion re.sub()
. Diese Funktion erlaubt es Ihnen, Übereinstimmungen durch einen angegebenen Ersatztext zu ersetzen.
Beispiel
text = "Ich liebe Python. Python ist vielseitig."
muster = r"Python"
ersatz = "Programmiersprache"
neuer_text = re.sub(muster, ersatz, text)
print(neuer_text)
# Ausgabe: Ich liebe Programmiersprache. Programmiersprache ist vielseitig.
5. Verwendung von speziellen Zeichen
Reguläre Ausdrücke nutzen spezielle Zeichen, um komplexere Muster zu definieren. Hier sind einige häufig verwendete Zeichen:
.
: steht für ein beliebiges Zeichen^
: steht für den Anfang einer Zeile$
: steht für das Ende einer Zeile*
: steht für null oder mehr Wiederholungen des vorhergehenden Zeichens+
: steht für eine oder mehr Wiederholungen des vorhergehenden Zeichens?
: steht für null oder eine Wiederholung des vorhergehenden Zeichens[]
: steht für eine Gruppe von Zeichen (z. B.[abc]
steht für a, b oder c)|
: steht für “oder” (z. B.a|b
findet a oder b)
Beispiel
text = "abc, aab, ac, bbc"
muster = r"a.c" # Findet 'abc' und 'aac'
alle_uebereinstimmungen = re.findall(muster, text)
print("Gefundene Übereinstimmungen:", alle_uebereinstimmungen)
# Ausgabe: Gefundene Übereinstimmungen: ['abc', 'aac']
6. Gruppierung und Rückreferenzen
Sie können Klammern verwenden, um Teile eines Musters zu gruppieren und Rückreferenzen zu ermöglichen. Dies ist nützlich, um Teile eines gefundenen Musters später zu verwenden.
Beispiel
text = "Die Nummern sind 123-4567 und 234-5678."
muster = r"(\d{3})-(\d{4})" # Suche nach Telefonnummern im Format XXX-XXXX
alle_uebereinstimmungen = re.findall(muster, text)
print("Gefundene Telefonnummern:", alle_uebereinstimmungen)
# Ausgabe: Gefundene Telefonnummern: [('123', '4567'), ('234', '5678')]
7. Komplexere Muster
Reguläre Ausdrücke können auch komplexere Muster erkennen. Hier ist ein Beispiel, das E-Mail-Adressen sucht.
Beispiel
text = "Kontaktieren Sie uns unter [email protected] oder [email protected]."
muster = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(muster, text)
print("Gefundene E-Mail-Adressen:", emails)
# Ausgabe: Gefundene E-Mail-Adressen: ['[email protected]', '[email protected]']
Häufig gestellte Fragen
Was ist ein regulärer Ausdruck?
Ein regulärer Ausdruck ist eine Sequenz von Zeichen, die ein Suchmuster definiert. Es wird verwendet, um Textmuster zu suchen und zu bearbeiten.
Wie finde ich alle Vorkommen eines Musters in einem Text?
Verwenden Sie die Funktion re.findall()
, um alle Vorkommen eines Musters in einem Text zu finden.
Wie kann ich Teile eines Textes basierend auf einem Muster ersetzen?
Verwenden Sie die Funktion re.sub()
, um Teile eines Textes, die einem Muster entsprechen, durch einen anderen Text zu ersetzen.