Zeichenwiederholungsoperatoren in Regex
Es gibt Situationen, in denen man angeben muss, dass
ein Zeichen eine bestimmte Anzahl von Malen
wiederholt wird. Wenn die genaue Anzahl der Wiederholungen unbekannt ist,
kann man es einfach mehrmals schreiben
- 'aaaa'. Aber was tut man, wenn man
so etwas sagen muss: ein oder mehrmals
wiederholen?
Dafür gibt es Wiederholungsoperatoren (Quantifikatoren):
Plus + (ein oder mehrmals),
Stern * (null oder mehrmals)
und Fragezeichen ? (null oder einmal).
Diese Operatoren wirken auf das Zeichen,
das vor ihnen steht.
Lassen Sie uns die Arbeit dieser Operatoren an Beispielen betrachten.
Beispiel
Lassen Sie uns alle Teilzeichenketten nach dem Muster Buchstabe
'x', Buchstabe 'a' ein oder mehrmals,
Buchstabe 'x' finden:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Ergebnis der Codeausführung:
'xx ! ! ! xbx'
Beispiel
Lassen Sie uns alle Teilzeichenketten nach dem Muster Buchstabe
'x', Buchstabe 'a' null oder mehrmals,
Buchstabe 'x' finden:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! ! ! xbx'
Beispiel
Lassen Sie uns alle Teilzeichenketten nach dem Muster Buchstabe
'x', Buchstabe 'a' null oder einmal,
Buchstabe 'x' finden:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! xaax xbx'
Praktische Aufgaben
Gegeben sei die Zeichenkette:
txt = 'aa aba abba abbba abca abea'
Schreiben Sie einen regulären Ausdruck, der die Zeichenketten
'aba', 'abba', 'abbba'
nach dem Muster findet: Buchstabe 'a', Buchstabe
'b' beliebig viele Male, Buchstabe 'a'.
Gegeben sei die Zeichenkette:
txt = 'aa aba abba abbba abca abea'
Schreiben Sie einen regulären Ausdruck, der die Zeichenketten
'aa', 'aba', 'abba',
'abbba' nach dem Muster findet: Buchstabe
'a', Buchstabe 'b' beliebig viele Male
(einschließlich kein einziges Mal), Buchstabe 'a'.
Gegeben sei die Zeichenkette:
txt = 'aa aba abba abbba abca abea'
Schreiben Sie einen regulären Ausdruck, der die Zeichenketten
'aa', 'aba' nach dem Muster findet:
Buchstabe 'a', Buchstabe 'b' einmal
oder keinmal, Buchstabe 'a'.
Gegeben sei die Zeichenkette:
txt = 'aa aba abba abbba abca abea'
Schreiben Sie einen regulären Ausdruck, der die Zeichenketten
'aa', 'aba', 'abba',
'abbba' findet, ohne 'abca'
und 'abea' zu erfassen.