Acolade în expresiile regulate Python
Operatorii '+', '*', '?'
sunt buni, totuși, cu ajutorul lor nu se poate specifica
un număr exact de repetări. În acest caz
vine în ajutor operatorul {}.
Funcționează astfel: {5}
- cinci repetări, {2,5} – se repetă
de la doi la cinci (ambele incluse), {2,}
- se repetă de două ori sau mai mult. Uitați-vă la
exemple:
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'x', litera 'a'
o dată sau de două ori, litera 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Rezultatul executării codului:
'xx ! ! xaaax'
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'x', litera 'a'
de două ori sau mai mult, litera 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Rezultatul executării codului:
'xx xax ! !'
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'x', litera 'a'
de trei ori, litera 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Rezultatul executării codului:
'xx xax xaax !'
Exemplu
În acest exemplu, șablonul de căutare arată
astfel: litera 'a' de zece ori:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Rezultatul executării codului:
'aaa ! aaa'
Exemplu
În acest exemplu există următorul șablon: litera
'x', litera 'a' de trei ori sau mai puțin,
litera 'x'. Pentru a-l
realiza, înaintea cifrei 3
se poate să nu se indice un număr, ci să se pună
simplu o virgulă:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Rezultatul executării codului:
'! ! ! !'
Exemplu
Zero înaintea 3 este de asemenea permis:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Rezultatul executării codului:
'! ! ! !'
Probleme practice
Este dat șirul:
txt = 'aa aba abba abbba abbbba abbbbba'
Scrieți o expresie regulată care va găsi șirurile
'abba', 'abbba', 'abbbba'
și numai pe acestea.
Este dat șirul:
txt = 'aa aba abba abbba abbbba abbbbba'
Scrieți o expresie regulată care va găsi șirurile
de tipul 'aba', în care 'b'
apare de mai puțin de 3 ori (inclusiv).
Este dat șirul:
txt = 'aa aba abba abbba abbbba abbbbba'
Scrieți o expresie regulată care va găsi șirurile
de tipul 'aba', în care 'b'
apare de mai mult de 4 ori (inclusiv).