Кадрави загради во регуларните изрази на JavaScript

Операторите '+', '*', '?' се добри, но, со нивна помош не може да се наведе конкретен број на повторувања. Во овој случај на помош ќе ви дојде операторот {}.

Работи на следниов начин: {5} - пет повторувања, {2,5} – се повторува од два до пет (и двете вклучени), {2,} - се повторува два или повеќе пати. Обрнете внимание на тоа дека варијантата - {,2} - не постои. Погледнете ги примерите:

Пример

Во овој пример шаблонот за пребарување изгледа вака: буква 'x', буква 'a' еднаш или два пати, буква 'x':

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

Како резултат во променливата ќе се запише следново:

javascript'xx ! ! xaaax'

Пример

Во овој пример шаблонот за пребарување изгледа вака: буква 'x', буква 'a' два пати или повеќе, буква 'x':

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

Како резултат во променливата ќе се запише следново:

javascript'xx xax ! !'

Пример

Во овој пример шаблонот за пребарување изгледа вака: буква 'x', буква 'a' три пати, буква 'x':

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

Како резултат во променливата ќе се запише следново:

javascript'xx xax xaax !'

Пример

Во овој пример шаблонот за пребарување изгледа вака: буква 'a' десет пати:

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

Како резултат во променливата ќе се запише следново:

javascript'aaa ! aaa'

Пример

Во овој пример авторот на кодот сакал таков шаблон: буква 'x', буква 'a' три пати пати или помалку, буква 'x', но, за жал, таквото - {,3} - не работи. Треба експлицитно да се наведе:

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

Како резултат во променливата ќе се запише следново:

javascript'xx ! ! !'

Пример

Нулата е исто така дозволена:

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

Како резултат во променливата ќе се запише следново:

javascript'! ! ! !'

Практични задачи

Задание 1

Дадена е низа:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Напишете регуларен израз што ќе ги најде низите 'abba', 'abbba', 'abbbba' и само нив.

Задание 2

Дадена е низа:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Напишете регуларен израз што ќе ги најде низите од видот 'aba', во кои 'b' се среќава помалку од 3 пати (вклучително).

Задание 3

Дадена е низа:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Напишете регуларен израз што ќе ги најде низите од видот 'aba', во кои 'b' се среќава повеќе од 4 пати (вклучително).