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':

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

print(res)

Rezultat izvršavanja koda:

python'! ! abb'

Primer

U ovom primeru obrazac za pretragu je sledeći: tri slova 'a' ili od 1 i više slova 'b':

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

print(res)

Rezultat izvršavanja koda:

python'! ! ! ! axx'

Primer

U ovom primeru obrazac za pretragu je sledeći: jedno ili više slova ili tri cifre:

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

print(res)

Rezultat izvršavanja koda:

python'! ! ! 1 12 !'

Primer

Vertikalna crta može podeliti regularni izraz ne na dva dela, već na bilo koji broj delova:

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

print(res)

Rezultat izvršavanja koda:

python'! ! ! 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':

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

print(res)

Rezultat izvršavanja koda:

python'! ! ! exx'

Praktični zadaci

Задание 1

Dat je niz:

pythontxt = '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.

Задание 2

Dat je niz:

pythontxt = '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.