Acolade în expresiile regulate JavaScript
Operatorii '+', '*', '?'
sunt buni, totuși, cu ajutorul lor nu se poate specifica
un număr exact de repetări. În acest caz
vin î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. Atenție
la faptul că varianta aceasta - {,2}
- nu există. 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':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'xx ! ! xaaax'
Exemplu
În acest exemplu șablonul de căutare arată astfel:
litera 'x', litera 'a' de două
ori sau mai mult, litera 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'xx xax ! !'
Exemplu
În acest exemplu șablonul de căutare arată astfel:
litera 'x', litera 'a' de trei
ori, litera 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'xx xax xaax !'
Exemplu
În acest exemplu șablonul de căutare arată astfel:
litera 'a' de zece ori:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'aaa ! aaa'
Exemplu
În acest exemplu autorul codului a vrut acest șablon:
litera 'x', litera 'a' de trei
ori sau mai puțin, litera 'x',
dar, din păcate, asta - {,3} - nu funcționează.
Trebuie specificat explicit:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'xx ! ! !'
Exemplu
Zero este de asemenea permis:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Ca rezultat, în variabilă se va scrie următorul:
'! ! ! !'
Probleme practice
Este dat șirul:
let str = '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:
let str = '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:
let str = '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).