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 mit n 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.