Einführung in reguläre Ausdrücke in Python
Reguläre Ausdrücke sind Befehle für komplexe Suche und Ersetzung (oder einfach Suche). Sie ermöglichen sehr interessante Dinge, sind aber leider recht schwer zu erlernen.
Um mit regulären Ausdrücken in Python zu
arbeiten, müssen wir das spezielle Modul
re importieren:
import re
Das Modul re enthält Methoden,
die für die Arbeit mit regulären
Ausdrücken bestimmt sind. Ein regulärer
Ausdruck ist ein Satz von Befehlen und besteht
aus zwei Arten von Zeichen: solchen, die
sich selbst bezeichnen, und aus Befehlszeichen,
die Sonderzeichen genannt werden.
Die Bekanntschaft mit regulären Ausdrücken
sollte man am besten anhand der Methode
sub beginnen, die für Ersetzungen
in einer Zeichenkette verwendet wird. Der
erste Parameter der Methode akzeptiert, was
ersetzt werden soll, der zweite - durch was
ersetzt werden soll. Im dritten Parameter
geben wir die Zeichenkette an, in der die
Ersetzung vorgenommen werden soll. Im
vierten optionalen Parameter legen wir die
Anzahl der Ersetzungen fest. Die einfachste
Ersetzung mit dieser Methode sieht so aus:
res = re.sub('a', '!', 'bab')
print(res) # gibt 'b!b' aus
Wie Sie bemerkt haben, bezeichnen Buchstaben
in regulären Ausdrücken sich selbst. Dasselbe
gilt auch für Ziffern. Lassen Sie uns die
Ziffer 2 durch ! ersetzen:
res = re.sub('2', '!', '12abc3')
print(res) # gibt '1!abc3' aus
Ein Punkt hingegen ist ein Sonderzeichen
und bezeichnet ein beliebiges Zeichen.
Im folgenden Beispiel finden wir eine Teilzeichenkette
nach diesem Muster: Buchstabe
'x', dann ein beliebiges
Zeichen, dann wieder Buchstabe 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # gibt '! eee' aus
Gegeben sei die Zeichenkette:
txt = 'ahb acb aeb aeeb adcb axeb'
Schreiben Sie einen regulären Ausdruck,
der die Zeichenketten 'ahb',
'acb', 'aeb'
nach dem Muster findet: Buchstabe
'a', ein beliebiges
Zeichen, Buchstabe 'b'.
Gegeben sei die Zeichenkette:
txt = 'aba aca aea abba adca abea'
Schreiben Sie einen regulären Ausdruck,
der die Zeichenketten 'abba',
'adca', 'abea'
nach dem Muster findet: Buchstabe
'a', 2
beliebige Zeichen, Buchstabe 'a'.
Gegeben sei die Zeichenkette:
txt = 'aba aca aea abba adca abea'
Schreiben Sie einen regulären Ausdruck,
der die Zeichenketten 'abba'
und 'abea' findet, ohne
'adca' zu erfassen.