Komanda 'ili' u regularnim izrazima Pajton
Komanda '|', koja predstavlja
moćniju varijantu 'ili'
u poređenju sa komandom [ ]. Ova komanda
omogućava da se regularni izraz podeli na nekoliko
delova. Pri tome, traženi sadržaj može odgovarati
ili jednom delu regularnog izraza, ili
drugom. Pogledajmo na primerima.
Primer
U ovom primeru obrazac za pretragu je sledeći:
tri slova 'a' ili tri slova
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! abb'
Primer
U ovom primeru obrazac za pretragu je sledeći:
tri slova 'a' ili od 1 i
više slova 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! ! axx'
Primer
U ovom primeru obrazac za pretragu je sledeći: jedno ili više slova ili tri cifre:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! 1 12 !'
Primer
Vertikalna crta može podeliti regularni izraz ne na dva dela, već na bilo koji broj delova:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! ddd'
Primer
Ako je vertikalna crta unutar običnih
zagrada, onda 'ili' radi samo
unutar tih zagrada.
Za primer, hajde da nađemo niske prema
sledećem obrascu: na početku stoji ili
'a', ili 'b' jedan ili više
puta, a zatim dva slova 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! exx'
Praktični zadaci
Dat je niz:
txt = 'aeeea aeea aea axa axxa axxxa'
Napišite regularni izraz koji će pronaći niske
prema obrascu: sa ivicama stoje slova
'a', a između njih - ili slovo
'e' bilo koji broj puta ili slovo
'x' bilo koji broj puta.
Dat je niz:
txt = 'aeeea aeea aea axa axxa axxxa'
Napišite regularni izraz koji će pronaći niske
prema obrascu: sa ivicama stoje slova
'a', a između njih - ili slovo
'e' dva puta ili slovo 'x'
bilo koji broj puta.