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:

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)

print(res)

Ergebnis der Codeausführung:

python'xx ! ! ! xbx'

Beispiel

Lassen Sie uns alle Teilzeichenketten nach dem Muster Buchstabe 'x', Buchstabe 'a' null oder mehrmals, Buchstabe 'x' finden:

pythontxt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)

print(res)

Ergebnis der Codeausführung:

python'! ! ! ! xbx'

Beispiel

Lassen Sie uns alle Teilzeichenketten nach dem Muster Buchstabe 'x', Buchstabe 'a' null oder einmal, Buchstabe 'x' finden:

pythontxt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)

print(res)

Ergebnis der Codeausführung:

python'! ! xaax xbx'

Praktische Aufgaben

Задание 1

Gegeben sei die Zeichenkette:

pythontxt = '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'.

Задание 2

Gegeben sei die Zeichenkette:

pythontxt = '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'.

Задание 3

Gegeben sei die Zeichenkette:

pythontxt = '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'.

Задание 4

Gegeben sei die Zeichenkette:

pythontxt = '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.