Увод у регуларне изразе у JavaScript-у

Регуларни изрази су такве команде за сложено претраживање и замењивање (или једноставно претраживање). Они омогућавају да се раде веома интересне ствари, али, нажалост, прилично су тешки за савладавање.

Постоји неколико метода JavaScript-а за рад са регуларним изразима. Почећемо да се упознајемо са њима на примеру replace - већ сте упознати са овом методом: он првим параметром прима шта мењати, а другим - на шта мењати. А сам метод се примењује на низ, у коме се врши замена:

javascript'bab'.replace('a', '!'); // враћа 'b!b'

Првим параметром овог метода се може проследити не само низ, већ регуларан израз. Регуларан израз представља скуп команди, постављених унутар косих црта /. Ове косе црте се називају ограничачима регуларних израза.

Сами регуларни изрази се састоје од два типа симбола: од оних који означавају сами себе и од симбола-команди, који се називају специјални симболи.

Слова и цифре означавају саме себе. У следећем примеру ћемо помоћу регуларног израза заменити слово 'a' са !:

javascript'bab'.replace(/a/, '!'); // враћа 'b!b'

А ево тачка је специјални симбол и означава било који симбол. У следећем примеру ћемо наћи низ по таквом шаблону: слово 'x', затим било који симбол, затим поново слово 'x':

javascript'xax eee'.replace(/x.x/, '!'); // враћа '! eee'

Након ограничача се може писати модификаторе - команде које мењају општа својства регуларног израза. На пример, модификатор g укључује режим глобалног претраживања и замене - без њега регуларка тражи само прво поклапање, а са њим - сва поклапања.

У следећем примеру није наведен модификатор g и регуларка ће наћи само прво поклапање:

javascript'aab'.replace(/a/,  '!'); // враћа '!ab'

А сада ће регуларка наћи сва поклапања:

javascript'aab'.replace(/a/g, '!'); // враћа '!!b'
Задание 1

Дат је низ:

javascriptlet str = 'ahb acb aeb aeeb adcb axeb';

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

Задание 2

Дат је низ:

javascriptlet str = 'aba aca aea abba adca abea';

Напишите регуларку, која ће наћи низове 'abba', 'adca', 'abea' по шаблону: слово 'a', 2 било која симбола, слово 'a'.

Задание 3

Дат је низ:

javascriptlet str = 'aba aca aea abba adca abea';

Напишите регуларку, која ће наћи низове 'abba' и 'abea', не обухватајући 'adca'.