Zavití oklepaji v regularnih izrazih Python
Operatorji '+', '*', '?'
so dobri, vendar z njimi ni mogoče določiti
natančnega števila ponovitev. V tem primeru
vam bo na pomoč priskočil operator {}.
Deluje na naslednji način: {5}
- pet ponovitev, {2,5} – ponavlja se
od dveh do pet (oba vključno), {2,}
- ponavlja se dvakrat ali večkrat. Oglejte si
primerje:
Primer
V tem primeru je vzorec iskanja
takšen: črka 'x', črka 'a'
enkrat ali dvakrat, črka 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Rezultat izvajanja kode:
'xx ! ! xaaax'
Primer
V tem primeru je vzorec iskanja
takšen: črka 'x', črka 'a'
dvakrat ali večkrat, črka 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Rezultat izvajanja kode:
'xx xax ! !'
Primer
V tem primeru je vzorec iskanja
takšen: črka 'x', črka 'a'
trikrat, črka 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Rezultat izvajanja kode:
'xx xax xaax !'
Primer
V tem primeru je vzorec iskanja
takšen: črka 'a' desetkrat:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Rezultat izvajanja kode:
'aaa ! aaa'
Primer
V tem primeru je takšen vzorec: črka
'x', črka 'a' trikrat ali manjkrat,
črka 'x'. Da bi ga implementirali,
pred številko 3
ni treba navesti številke, ampak lahko postavimo
preprosto vejico:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Rezultat izvajanja kode:
'! ! ! !'
Primer
Ničla pred 3 je prav tako dovoljena:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Rezultat izvajanja kode:
'! ! ! !'
Praktične naloge
Podan je niz:
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz, ki bo našel nize
'abba', 'abbba', 'abbbba'
in samo njih.
Podan je niz:
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz, ki bo našel nize
oblike 'aba', v katerih se 'b'
pojavi manj kot 3-krat (vključno).
Podan je niz:
txt = 'aa aba abba abbba abbbba abbbbba'
Napišite regularni izraz, ki bo našel nize
oblike 'aba', v katerih se 'b'
pojavi več kot 4-krat (vključno).