Zložené zátvorky v regulárnych výrazoch Python
Operátory '+', '*', '?'
sú dobré, avšak pomocou nich nie je možné špecifikovať
konkrétny počet opakovaní. V tomto prípade
vám pomôže operátor {}.
Funguje nasledovne: {5}
- päť opakovaní, {2,5} – opakuje sa
od dvoch do piatich (oba vrátane), {2,}
- opakuje sa dva a viac krát. Pozrite si
príklady:
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'x', písmeno 'a'
jeden alebo dva krát, písmeno 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Výsledok vykonania kódu:
'xx ! ! xaaax'
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'x', písmeno 'a'
dva krát a viac, písmeno 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Výsledok vykonania kódu:
'xx xax ! !'
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'x', písmeno 'a'
tri krát, písmeno 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Výsledok vykonania kódu:
'xx xax xaax !'
Príklad
V tomto príklade vyhľadávací vzor vyzerá
takto: písmeno 'a' desať krát:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Výsledok vykonania kódu:
'aaa ! aaa'
Príklad
V tomto príklade je takýto vzor: písmeno
'x', písmeno 'a' tri krát a menej,
písmeno 'x'. Aby sme ho realizovali,
pred číslom 3
nemusíme uvádzať číslo, ale stačí
jednoducho napísať čiarku:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Výsledok vykonania kódu:
'! ! ! !'
Príklad
Nula pred 3 je tiež prípustná:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Výsledok vykonania kódu:
'! ! ! !'
Praktické úlohy
Daný reťazec:
txt = 'aa aba abba abbba abbbba abbbbba'
Napíšte regulárny výraz, ktorý nájde reťazce
'abba', 'abbba', 'abbbba'
a len ich.
Daný reťazec:
txt = 'aa aba abba abbba abbbba abbbbba'
Napíšte regulárny výraz, ktorý nájde reťazce
tvaru 'aba', v ktorých sa 'b'
vyskytuje menej ako 3-krát (vrátane).
Daný reťazec:
txt = 'aa aba abba abbba abbbba abbbbba'
Napíšte regulárny výraz, ktorý nájde reťazce
tvaru 'aba', v ktorých sa 'b'
vyskytuje viac ako 4-krát (vrátane).