Kommandoen 'eller' i regulære uttrykk i Python
Kommandoen '|', som representerer
en mer kraftfull variant av 'eller'
sammenlignet med kommandoen [ ]. Denne kommandoen
tillater å dele det regulære uttrykket i flere
deler. Samtidig kan det søkte falde
enten inn under en del av det regulære uttrykket, eller under
en annen. La oss se på eksempler.
Eksempel
I dette eksemplet er søkemønsteret slik:
tre bokstaver 'a' eller tre bokstaver
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Resultatet av kodekjøringen:
'! ! abb'
Eksempel
I dette eksemplet er søkemønsteret slik:
tre bokstaver 'a' eller fra 1 og
flere bokstaver 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Resultatet av kodekjøringen:
'! ! ! ! axx'
Eksempel
I dette eksemplet er søkemønsteret slik: en eller flere bokstaver eller tre sifre:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Resultatet av kodekjøringen:
'! ! ! 1 12 !'
Eksempel
Den vertikale streken kan dele det regulære uttrykket ikke i to deler, men i et hvilket som helst antall deler:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Resultatet av kodekjøringen:
'! ! ! ddd'
Eksempel
Hvis den vertikale streken står innenfor runde
parenteser, så virker 'eller' bare
innenfor disse parentesene.
La oss som et eksempel finne strenger etter
følgende mønster: i begynnelsen står enten
'a', eller 'b' en eller flere
ganger, og deretter to bokstaver 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Resultatet av kodekjøringen:
'! ! ! exx'
Praktiske oppgaver
Gitt en streng:
txt = 'aeeea aeea aea axa axxa axxxa'
Skriv et regulært uttrykk som vil finne strenger
etter mønsteret: ved kantene står bokstaver
'a', og mellom dem - enten bokstaven
'e' et hvilket som helst antall ganger eller bokstaven
'x' et hvilket som helst antall ganger.
Gitt en streng:
txt = 'aeeea aeea aea axa axxa axxxa'
Skriv et regulært uttrykk som vil finne strenger
etter mønsteret: ved kantene står bokstaver
'a', og mellom dem - enten bokstaven
'e' to ganger eller bokstaven 'x'
et hvilket som helst antall ganger.