Viticaste zagrade u regularnim izrazima Pythona
Operatorima '+', '*', '?'
je dobro, ali pomoću njih ne možete da navedete
tačan broj ponavljanja. U tom slučaju
će vam pomoći operator {}.
Radi na sledeći način: {5}
- pet ponavljanja, {2,5} – ponavlja se
od dva do pet (oba uključujući), {2,}
- ponavlja se dva ili više puta. Pogledajte
primer:
Primer
U ovom primeru obrazac (pattern) za pretragu izgleda
ovako: slovo 'x', slovo 'a'
jedan ili dva puta, slovo 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Rezultat izvršavanja koda:
'xx ! ! xaaax'
Primer
U ovom primeru obrazac za pretragu izgleda
ovako: slovo 'x', slovo 'a'
dva puta ili više, slovo 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Rezultat izvršavanja koda:
'xx xax ! !'
Primer
U ovom primeru obrazac za pretragu izgleda
ovako: slovo 'x', slovo 'a'
tri puta, slovo 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Rezultat izvršavanja koda:
'xx xax xaax !'
Primer
U ovom primeru obrazac za pretragu izgleda
ovako: slovo 'a' deset puta:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Rezultat izvršavanja koda:
'aaa ! aaa'
Primer
U ovom primeru postoji ovakav obrazac: slovo
'x', slovo 'a' tri puta i manje,
slovo 'x'. Da biste ga realizovali,
ispred broja 3
ne morate da navedete broj, već možete da stavite
samo zarez:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! !'
Primer
Nula ispred 3 je takođe dozvoljena:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Rezultat izvršavanja koda:
'! ! ! !'
Praktični zadaci
Data je string (niska):
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz koji će da nađe stringove
'abba', 'abbba', 'abbbba'
i samo njih.
Data je string (niska):
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz koji će da nađe stringove
tipa 'aba', u kojima se 'b'
pojavljuje manje od 3 puta (uključujući).
Data je string (niska):
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz koji će da nađe stringove
tipa 'aba', u kojima se 'b'
pojavljuje više od 4 puta (uključujući).