Zaviti oklepaji v regularnih izrazih JavaScript
Operatorji '+', '*', '?'
so dobri, vendar z njimi ni mogoče določiti
natančnega števila ponovitev. V tem primeru
vam bo na pomoč priskočil operator {}.
Deluje na naslednji način: {5}
- pet ponovitev, {2,5} – ponavlja se
od dveh do pet (oba vključno), {2,}
- ponavlja se dva ali večkrat. Bodite pozorni
na to, da različice - {,2}
- ni. Oglejte si primere:
Primer
V tem primeru je vzorec iskanja takšen:
črka 'x', črka 'a' enkrat
ali dvakrat, črka 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'xx ! ! xaaax'
Primer
V tem primeru je vzorec iskanja takšen:
črka 'x', črka 'a' dvakrat
ali večkrat, črka 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'xx xax ! !'
Primer
V tem primeru je vzorec iskanja takšen:
črka 'x', črka 'a' trikrat,
črka 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'xx xax xaax !'
Primer
V tem primeru je vzorec iskanja takšen:
črka 'a' desetkrat:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'aaa ! aaa'
Primer
V tem primeru je želeni vzorec avtorja kode takšen:
črka 'x', črka 'a' trikrat
ali manjkrat, črka 'x',
vendar, na žalost, to - {,3} - ne deluje.
Treba je eksplicitno navesti:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'xx ! ! !'
Primer
Ničla je prav tako dovoljena:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! !'
Praktične naloge
Podan niz:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz, ki bo našel nize
'abba', 'abbba', 'abbbba'
in samo njih.
Podan niz:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz, ki bo našel nize
oblike 'aba', v katerih se 'b' pojavi
manj kot 3-krat (vključno).
Podan niz:
let str = 'aa aba abba abbba abbbba abbbbba';
Napišite regularni izraz, ki bo našel nize
oblike 'aba', v katerih se 'b' pojavi
več kot 4-krat (vključno).