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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

javascript'xx ! ! xaaax'

Exemplu

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

javascript'xx xax ! !'

Exemplu

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

javascript'xx xax xaax !'

Exemplu

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

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

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

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

javascript'xx ! ! !'

Exemplu

Zero este de asemenea permis:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

Ca rezultat, în variabilă se va scrie următorul:

javascript'! ! ! !'

Probleme practice

Задание 1

Este dat șirul:

javascriptlet str = '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:

javascriptlet 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).

Задание 3

Este dat șirul:

javascriptlet 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).