'Eller'-kommandoen i Pythons regulære udtryk

Kommandoen '|', som repræsenterer en mere kraftfuld version af 'eller' sammenlignet med kommandoen [ ]. Denne kommando tillader at opdele det regulære udtryk i flere dele. Det søgte kan enten passe til den ene del af det regulære udtryk eller til den anden. Lad os se på eksempler.

Eksempel

I dette eksempel er søgemønsteret sådan: tre bogstaver 'a' eller tre bogstaver 'b':

pythontxt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)

print(res)

Resultatet af kodeudførelsen:

python'! ! abb'

Eksempel

I dette eksempel er søgemønsteret sådan: tre bogstaver 'a' eller fra 1 og flere bogstaver 'b':

pythontxt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)

print(res)

Resultatet af kodeudførelsen:

python'! ! ! ! axx'

Eksempel

I dette eksempel er søgemønsteret sådan: et eller flere bogstaver eller tre cifre:

pythontxt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)

print(res)

Resultatet af kodeudførelsen:

python'! ! ! 1 12 !'

Eksempel

Det lodrette streg kan opdele det regulære udtryk ikke kun i to dele, men i et vilkårligt antal dele:

pythontxt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)

print(res)

Resultatet af kodeudførelsen:

python'! ! ! ddd'

Eksempel

Hvis det lodrette streg står inde i runde parenteser, så virker 'eller' kun inde i disse parenteser.

Lad os som eksempel finde strenge efter følgende mønster: i starten står enten 'a' eller 'b' en eller flere gange, og derefter to bogstaver 'x':

pythontxt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)

print(res)

Resultatet af kodeudførelsen:

python'! ! ! exx'

Praktiske opgaver

Задание 1

Givet en streng:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skriv et regulært udtryk, der finder strenge efter mønsteret: der står bogstaver 'a' i enderne, og imellem dem - enten bogstavet 'e' et vilkårligt antal gange eller bogstavet 'x' et vilkårligt antal gange.

Задание 2

Givet en streng:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Skriv et regulært udtryk, der finder strenge efter mønsteret: der står bogstaver 'a' i enderne, og imellem dem - enten bogstavet 'e' to gange eller bogstavet 'x' et vilkårligt antal gange.