Команда 'или' у регуларним изразима JavaScript-а

У овом лекцији ћемо размотрити команду '|', која представља моћнију варијанту 'или' у поређењу са командом [ ]. Ова команда омогућава поделу регуларног израза на неколико делова. При томе тражени садржај може да одговара или једном делу регуларног израза, или другом. Хајде да погледамо на примерима.

Пример

У овом примеру шаблон претраге је: три слова 'a' или три слова 'b':

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

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

javascript'! ! abb'

Пример

У овом примеру шаблон претраге је: три слова 'a' или од 1 и више слова 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

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

javascript'! ! ! ! axx'

Пример

У овом примеру шаблон претраге је: једно или више слова или три цифре:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

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

javascript'! ! ! 1 12 !'

Пример

Вертикална црта може поделити регуларни израз не на два дела, него на било који број делова:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

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

javascript'! ! ! ddd'

Пример

Ако се вертикална црта налази унутар заграда (круглих), онда 'или' ради само унутар тих заграда.

За пример, хајде да пронађемо низове по следећем шаблону: на почетку се налази или 'a', или 'b' један или више пута, а затим два слова 'x':

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

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

javascript'! ! ! exx'

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

Задание 1

Дат је низ:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Напишите регуларни израз који ће пронаћи низове по шаблону: на крајевима стоје слова 'a', а између њих - или слово 'e' било који број пута или слово 'x' било који број пута.

Задание 2

Дат је низ:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

Напишите регуларни израз који ће пронаћи низове по шаблону: на крајевима стоје слова 'a', а између њих - или слово 'e' два пута или слово 'x' било који број пута.