Gruppierende Klammern in Python-Regex
In vorherigen Beispielen wirkten Wiederholungsoperatoren nur auf ein Zeichen, das vor ihnen stand. Was tun, wenn man sie auf mehrere Zeichen wirken lassen möchte?
Dafür gibt es gruppierende Klammern
'(' und . Sie funktionieren so:
wenn etwas in gruppierenden Klammern steht
und direkt nach ')'')' ein Wiederholungsoperator
steht - wirkt er auf alles, was
in den Klammern steht.
Im folgenden Beispiel sieht das Suchmuster
so aus: Buchstabe 'x', dann Zeichenkette
'ab' ein oder mehrmals, dann Buchstabe
'x':
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! xaabbx'
Gegeben ist die Zeichenkette:
txt = 'ab abab abab abababab abea'
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach dem Muster findet: Zeichenkette 'ab' wiederholt sich
1 oder mehrmals.