Python-reguläre Ausdrücke leicht gemacht
Reguläre Ausdrücke (regex) sind leistungsstarke Tools zum Abgleichen und Bearbeiten von Zeichenfolgen anhand von Mustern. In Python bietet das Modul re
Unterstützung für reguläre Ausdrücke, sodass Sie komplexe Zeichenfolgenoperationen effizient durchführen können. Dieser Artikel führt Sie in die Grundlagen regulärer Ausdrücke ein und zeigt Ihnen, wie Sie diese in Python effektiv verwenden.
Erste Schritte mit dem Modul re
Um reguläre Ausdrücke in Python zu verwenden, müssen Sie das Modul re
importieren. Dieses Modul bietet mehrere Funktionen für die Arbeit mit Regex-Mustern:
re.match()
– Prüft nur am Anfang der Zeichenfolge auf eine Übereinstimmung.re.search()
– Durchsucht die gesamte Zeichenfolge nach einer Übereinstimmung.re.findall()
– Findet alle Übereinstimmungen in der Zeichenfolge und gibt sie als Liste zurück.re.sub()
– Ersetzt Übereinstimmungen in der Zeichenfolge durch einen angegebenen Ersatz.
Grundlegende Musterübereinstimmung
Reguläre Ausdrücke verwenden Sonderzeichen, um Suchmuster zu definieren. Hier sind einige grundlegende Muster:
.
- Stimmt mit jedem einzelnen Zeichen außer dem Zeilenumbruch überein.\d
– Passt zu jeder Ziffer (entspricht[0-9]
).\w
– Passt zu jedem alphanumerischen Zeichen (entspricht[a-zA-Z0-9_]
).\s
– Passt zu jedem Leerzeichen.^
– Stimmt mit dem Anfang der Zeichenfolge überein.$
– Passt zum Ende der Zeichenfolge.
Beispiele
Hier sind einige Beispiele, die die grundlegende Mustererkennung demonstrieren:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Verwenden regulärer Ausdrücke mit Gruppen
Gruppen werden verwendet, um Teile des übereinstimmenden Textes zu erfassen. Sie werden durch Klammern definiert. Um beispielsweise bestimmte Teile eines Musters zu extrahieren, können Sie Gruppen verwenden:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Verwenden von Sonderzeichen
Reguläre Ausdrücke enthalten mehrere Sonderzeichen für eine komplexere Musterübereinstimmung:
*
– Stimmt mit 0 oder mehr Vorkommen des vorhergehenden Elements überein.+
– Stimmt mit einem oder mehreren Vorkommen des vorhergehenden Elements überein.?
– Stimmt mit 0 oder 1 Vorkommen des vorhergehenden Elements überein.{n}
– Stimmt genau mitn
Vorkommen des vorhergehenden Elements überein.|
– Stimmt entweder mit dem Muster davor oder danach überein.
Beispiele
Hier einige Beispiele mit Sonderzeichen:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Ersetzen von Text durch reguläre Ausdrücke
Die Funktion re.sub()
wird verwendet, um Teile der Zeichenfolge zu ersetzen, die einem Muster entsprechen:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Abschluss
Reguläre Ausdrücke sind ein leistungsstarkes Tool für Mustervergleich und Textbearbeitung in Python. Mit dem Modul re
können Sie Text anhand komplexer Muster suchen, vergleichen und ersetzen. Wenn Sie die grundlegende Syntax und Sonderzeichen verstehen, können Sie reguläre Ausdrücke nutzen, um eine Vielzahl von Textverarbeitungsaufgaben effektiv zu bewältigen.