Витичасте заграде у регуларним изразима JavaScript
Оператори '+', '*', '?'
су добри, међутим, уз њихову помоћ није могуће навести
конкретан број понављања. У том случају
у помоћ ће вам доћи оператор {}.
Ради на следећи начин: {5}
- пет понављања, {2,5} – понавља се
од два до пет (оба укључујући), {2,}
- понавља се два и више пута. Обратите пажњу
на то да такве варијанте - {,2}
- нема. Погледајте примере:
Пример
У овом примеру шаблон претраге изгледа овако:
слово 'x', слово 'a' један
или два пута, слово 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'xx ! ! xaaax'
Пример
У овом примеру шаблон претраге изгледа овако:
слово 'x', слово 'a' два
пута и више, слово 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'xx xax ! !'
Пример
У овом примеру шаблон претраге изгледа овако:
слово 'x', слово 'a' три
пута, слово 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'xx xax xaax !'
Пример
У овом примеру шаблон претраге изгледа овако:
слово 'a' десет пута:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'aaa ! aaa'
Пример
У овом примеру аутор кода је желео овакав шаблон:
слово 'x', слово 'a' три
пута и мање, слово 'x',
али, нажалост, такво нешто - {,3} - не ради.
Потребно је експлицитно навести:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'xx ! ! !'
Пример
Нула је такође дозвољена:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Као резултат у променљиву ће бити уписано следеће:
'! ! ! !'
Практични задаци
Дат је низ:
let str = 'aa aba abba abbba abbbba abbbbba';
Напишите регуларни израз који ће пронаћи низове
'abba', 'abbba', 'abbbba'
и само њих.
Дат је низ:
let str = 'aa aba abba abbba abbbba abbbbba';
Напишите регуларни израз који ће пронаћи низове
облика 'aba', у којима се 'b' јавља
мање од 3 пута (укључиво).
Дат је низ:
let str = 'aa aba abba abbba abbbba abbbbba';
Напишите регуларни израз који ће пронаћи низове
облика 'aba', у којима се 'b' јавља
више од 4 пута (укључиво).