Команда 'или' у регуларним изразима JavaScript-а
У овом лекцији ћемо размотрити команду
'|', која представља моћнију
варијанту 'или' у поређењу
са командом [ ]. Ова команда омогућава
поделу регуларног израза на неколико делова.
При томе тражени садржај може да одговара или једном
делу регуларног израза, или другом. Хајде да
погледамо на примерима.
Пример
У овом примеру шаблон претраге је: три
слова 'a' или три слова 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! abb'
Пример
У овом примеру шаблон претраге је: три
слова 'a' или од 1 и више
слова 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! ! ! axx'
Пример
У овом примеру шаблон претраге је: једно или више слова или три цифре:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! ! 1 12 !'
Пример
Вертикална црта може поделити регуларни израз не на два дела, него на било који број делова:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! ! ddd'
Пример
Ако се вертикална црта налази унутар заграда
(круглих), онда 'или' ради само унутар
тих заграда.
За пример, хајде да пронађемо низове по следећем
шаблону: на почетку се налази или 'a',
или 'b' један или више пута, а затим
два слова 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! ! exx'
Практични задаци
Дат је низ:
let str = 'aeeea aeea aea axa axxa axxxa';
Напишите регуларни израз који ће пронаћи низове
по шаблону: на крајевима стоје слова 'a',
а између њих - или слово 'e' било који
број пута или слово 'x' било који
број пута.
Дат је низ:
let str = 'aeeea aeea aea axa axxa axxxa';
Напишите регуларни израз који ће пронаћи низове
по шаблону: на крајевима стоје слова 'a',
а између њих - или слово 'e' два пута
или слово 'x' било који број пута.