Komanda 'vai' regulārajās izteiksmēs Python
Komanda '|', kas pārstāv
spēcīgāku 'vai' variantu
salīdzinājumā ar komandu [ ]. Šī komanda
ļauj sadalīt regulāro izteiksmi vairākās
daļās. Šajā gadījumā meklētais var atbilst
vienai regulārās izteiksmes daļai vai
citai. Apskatīsim piemēros.
Piemērs
Šajā piemērā meklēšanas šablons ir šāds:
trīs burti 'a' vai trīs burti
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! abb'
Piemērs
Šajā piemērā meklēšanas šablons ir šāds:
trīs burti 'a' vai no 1 un
vairāk burti 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! ! axx'
Piemērs
Šajā piemērā meklēšanas šablons ir šāds: viens vai vairāk burti vai trīs cipari:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! 1 12 !'
Piemērs
Vertikālā svītra var sadalīt regulāro izteiksmi ne divās daļās, bet jebkurā daudzumā daļu:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! ddd'
Piemērs
Ja vertikālā svītra atrodas apaļās iekavās,
tad 'vai' darbojas tikai
šo iekavu iekšienē.
Piemēram, atradīsim virknes pēc
šāda šablona: sākumā atrodas vai
'a', vai 'b' vienu vai vairāk
reizes, un pēc tam divi burti 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! exx'
Praktiskie uzdevumi
Dota virkne:
txt = 'aeeea aeea aea axa axxa axxxa'
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc šablona: malās atrodas burti
'a', un starp tiem - vai burts
'e' jebkurš daudzums reižu vai burts
'x' jebkurš daudzums reižu.
Dota virkne:
txt = 'aeeea aeea aea axa axxa axxxa'
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
pēc šablona: malās atrodas burti
'a', un starp tiem - vai burts
'e' divas reizes vai burts 'x'
jebkurš daudzums reižu.