Der 'oder'-Befehl in regulären Ausdrücken von Python
Der Befehl '|', der
eine leistungsfähigere Variante von 'oder'
im Vergleich zum Befehl [ ] darstellt. Dieser Befehl
ermöglicht es, den regulären Ausdruck in mehrere
Teile zu unterteilen. Dabei kann das Gesuchte
entweder auf einen Teil des regulären Ausdrucks passen
oder auf einen anderen. Sehen wir uns Beispiele an.
Beispiel
In diesem Beispiel ist das Suchmuster wie folgt:
drei Buchstaben 'a' oder drei Buchstaben
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! abb'
Beispiel
In diesem Beispiel ist das Suchmuster wie folgt:
drei Buchstaben 'a' oder 1 oder
mehr Buchstaben 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! ! ! axx'
Beispiel
In diesem Beispiel ist das Suchmuster wie folgt: ein oder mehrere Buchstaben oder drei Ziffern:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! ! 1 12 !'
Beispiel
Der vertikale Strich kann den regulären Ausdruck nicht nur in zwei Teile, sondern in beliebig viele Teile unterteilen:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! ! ddd'
Beispiel
Wenn der vertikale Strich innerhalb von runden
Klammern steht, dann funktioniert 'oder' nur
innerhalb dieser Klammern.
Lassen Sie uns als Beispiel Zeichenketten nach
folgendem Muster finden: am Anfang steht entweder
'a' oder 'b' ein oder mehrere
Male, und danach zwei Buchstaben 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Ergebnis der Codeausführung:
'! ! ! exx'
Praktische Aufgaben
Gegeben sei die Zeichenkette:
txt = 'aeeea aeea aea axa axxa axxxa'
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: an den Rändern stehen Buchstaben
'a', und dazwischen - entweder der Buchstabe
'e' beliebig oft oder der Buchstabe
'x' beliebig oft.
Gegeben sei die Zeichenkette:
txt = 'aeeea aeea aea axa axxa axxxa'
Schreiben Sie einen regulären Ausdruck, der Zeichenketten
nach folgendem Muster findet: an den Rändern stehen Buchstaben
'a', und dazwischen - entweder der Buchstabe
'e' zwei Mal oder der Buchstabe 'x'
beliebig oft.