Viticaste zagrade u regularnim izrazima JavaScript
Operatorima '+', '*', '?'
je dobro, međutim, pomoću njih se ne može odrediti
tačan broj ponavljanja. U ovom slučaju
će vam operator {} pomoći.
Radi na sledeći način: {5}
- pet ponavljanja, {2,5} – ponavlja se
od dva do pet (oba uključujući), {2,}
- ponavlja se dva ili više puta. Obratite pažnju
na to da ove varijante - {,2}
- nema. Pogledajte primere:
Primer
U ovom primeru obrazac pretrage izgleda ovako:
slovo 'x', slovo 'a' jedan
ili dva puta, slovo 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'xx ! ! xaaax'
Primer
U ovom primeru obrazac pretrage izgleda ovako:
slovo 'x', slovo 'a' dva
puta ili više, slovo 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'xx xax ! !'
Primer
U ovom primeru obrazac pretrage izgleda ovako:
slovo 'x', slovo 'a' tri
puta, slovo 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'xx xax xaax !'
Primer
U ovom primeru obrazac pretrage izgleda ovako:
slovo 'a' deset puta:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'aaa ! aaa'
Primer
U ovom primeru autor koda je želeo ovakav obrazac:
slovo 'x', slovo 'a' tri
puta ili manje, slovo 'x',
ali, nažalost, ovo - {,3} - ne radi.
Potrebno je eksplicitno navesti:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'xx ! ! !'
Primer
Nula je takođe dozvoljena:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Kao rezultat, u promenljivu će biti upisano sledeće:
'! ! ! !'
Praktični zadaci
Data je niska:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz koji će pronaći niske
'abba', 'abbba', 'abbbba'
i samo njih.
Data je niska:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz koji će pronaći niske
tipa 'aba', u kojima se 'b' pojavljuje
manje od 3 puta (uključujući).
Data je niska:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz koji će pronaći niske
tipa 'aba', u kojima se 'b' pojavljuje
više od 4 puta (uključujući).