'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':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Resultatet af kodeudførelsen:
'! ! abb'
Eksempel
I dette eksempel er søgemønsteret sådan:
tre bogstaver 'a' eller fra 1 og
flere bogstaver 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Resultatet af kodeudførelsen:
'! ! ! ! axx'
Eksempel
I dette eksempel er søgemønsteret sådan: et eller flere bogstaver eller tre cifre:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Resultatet af kodeudførelsen:
'! ! ! 1 12 !'
Eksempel
Det lodrette streg kan opdele det regulære udtryk ikke kun i to dele, men i et vilkårligt antal dele:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Resultatet af kodeudførelsen:
'! ! ! 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':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Resultatet af kodeudførelsen:
'! ! ! exx'
Praktiske opgaver
Givet en streng:
txt = '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.
Givet en streng:
txt = '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.