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

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

print(res)

Rezultatul executării codului:

python'xx ! ! xaaax'

Exemplu

În acest exemplu, șablonul de căutare arată astfel: litera 'x', litera 'a' de două ori sau mai mult, litera 'x':

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

print(res)

Rezultatul executării codului:

python'xx xax ! !'

Exemplu

În acest exemplu, șablonul de căutare arată astfel: litera 'x', litera 'a' de trei ori, litera 'x':

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

print(res)

Rezultatul executării codului:

python'xx xax xaax !'

Exemplu

În acest exemplu, șablonul de căutare arată astfel: litera 'a' de zece ori:

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

print(res)

Rezultatul executării codului:

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

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

print(res)

Rezultatul executării codului:

python'! ! ! !'

Exemplu

Zero înaintea 3 este de asemenea permis:

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

print(res)

Rezultatul executării codului:

python'! ! ! !'

Probleme practice

Задание 1

Este dat șirul:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Scrieți o expresie regulată care va găsi șirurile 'abba', 'abbba', 'abbbba' și numai pe acestea.

Задание 2

Este dat șirul:

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

Задание 3

Este dat șirul:

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