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

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Rezultat izvajanja kode:

python'xx ! ! xaaax'

Primer

V tem primeru je vzorec iskanja takšen: črka 'x', črka 'a' dvakrat ali večkrat, črka 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Rezultat izvajanja kode:

python'xx xax ! !'

Primer

V tem primeru je vzorec iskanja takšen: črka 'x', črka 'a' trikrat, črka 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Rezultat izvajanja kode:

python'xx xax xaax !'

Primer

V tem primeru je vzorec iskanja takšen: črka 'a' desetkrat:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Rezultat izvajanja kode:

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

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Rezultat izvajanja kode:

python'! ! ! !'

Primer

Ničla pred 3 je prav tako dovoljena:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Rezultat izvajanja kode:

python'! ! ! !'

Praktične naloge

Задание 1

Podan je niz:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Napišite regularni izraz, ki bo našel nize 'abba', 'abbba', 'abbbba' in samo njih.

Задание 2

Podan je niz:

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

Задание 3

Podan je niz:

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