Ukaz 'ali' v regularnih izrazih JavaScript
V tej lekciji bomo razčlenili ukaz
'|', ki predstavlja bolj
možno različico 'ali' v primerjavi
z ukazom [ ]. Ta ukaz omogoča
razdelitev regularnega izraza na več delov.
Pri tem lahko iskani niz ustreza bodisi enemu
delu regularnega izraza bodisi drugemu. Poglejmo
si primere.
Primer
V tem primeru je vzorec iskanja takšen: tri
črke 'a' ali tri črke 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! abb'
Primer
V tem primeru je vzorec iskanja takšen: tri
črke 'a' ali od 1 in več
črk 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! ! axx'
Primer
V tem primeru je vzorec iskanja takšen: ena ali več črk ali tri številke:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! 1 12 !'
Primer
Navpična črta lahko razdeli regularni izraz ne na dva dela, temveč na poljubno število delov:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! ddd'
Primer
Če je navpična črta znotraj okroglih
oklepajev, potem 'ali' deluje samo znotraj
tistih oklepajev.
Za primer poiščimo nize po naslednjem
vzorcu: na začetku je ali 'a',
ali 'b' enkrat ali večkrat, nato pa
dve črki 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! exx'
Praktične naloge
Podan je niz:
let str = 'aeeea aeea aea axa axxa axxxa';
Napišite regularni izraz, ki bo našel nize
po vzorcu: ob robovih so črke 'a',
med njimi pa - ali črka 'e' poljubno
število krat ali črka 'x' poljubno
število krat.
Podan je niz:
let str = 'aeeea aeea aea axa axxa axxxa';
Napišite regularni izraz, ki bo našel nize
po vzorcu: ob robovih so črke 'a',
med njimi pa - ali črka 'e' dvakrat
ali črka 'x' poljubno število krat.