Оператори понављања знакова

Бива ситуација када желимо да назначимо, да се знак понавља задати број пута. Ако знамо тачан број понављања, можемо га једноставно написати више пута - /aaaa/. Али шта ако желимо да кажемо ово: ponoviti jedan ili više puta?

За то постоје оператори (квантификатори) понављања: плус + (једном или више пута), звездица * (нула или више пута) и упитник ? (нула или једанпут). Ови оператори делују на онај знак који стоји пре њих.

Хајде да погледамо рад ових оператора на примерима.

Пример

Нађимо све подниске по шаблону слово 'x', слово 'a' један или више пута, слово 'x':

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

Као резултат у променљиву ће се уписати следеће:

javascript'xx ! ! ! xbx'

Пример

Нађимо све подниске по шаблону слово 'x', слово 'a' нула или више пута, слово 'x':

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

Као резултат у променљиву ће се уписати следеће:

javascript'! ! ! ! xbx'

Пример

Нађимо све подниске по шаблону слово 'x', слово 'a' нула или један пут, слово 'x':

javascriptlet str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');

Као резултат у променљиву ће се уписати следеће:

javascript'! ! xaax xbx'

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

Задание 1

Дат је стринг:

javascriptlet str = 'aa aba abba abbba abca abea';

Напишите регуларни израз који ће наћи стрингове 'aba', 'abba', 'abbba' по шаблону: слово 'a', слово 'b' било колико пута, слово 'a'.

Задание 2

Дат је стринг:

javascriptlet str = 'aa aba abba abbba abca abea';

Напишите регуларни израз који ће наћи стрингове 'aa', 'aba', 'abba', 'abbba' по шаблону: слово 'a', слово 'b' било колико пута (укључујући и нула пута), слово 'a'.

Задание 3

Дат је стринг:

javascriptlet str = 'aa aba abba abbba abca abea';

Напишите регуларни израз који ће наћи стрингове 'aa', 'aba' по шаблону: слово 'a', слово 'b' једном или никад, слово 'a'.

Задание 4

Дат је стринг:

javascriptlet str = 'aa aba abba abbba abca abea';

Напишите регуларни израз који ће наћи стрингове 'aa', 'aba', 'abba', 'abbba', а да не ухвати 'abca' и 'abea'.