'Või' käsk JavaScripti regulaaravaldistes
Selles õppetükis analüüsime käsku
'|', mis esindab
võimsamat varianti 'või' võrreldes
käsuga [ ]. See käsk võimaldab
jagada regulaaravaldise mitmeks osaks.
Sel juhul võib otsitav vastata kas ühele
regulaaravaldise osale või teisele. Vaatame
näidetega.
Näide
Selles näites on otsimismustriks: kolm
tähte 'a' või kolm tähte 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! abb'
Näide
Selles näites on otsimismustriks: kolm
tähte 'a' või 1 kuni rohkem
tähti 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! ! axx'
Näide
Selles näites on otsimismustriks: üks või rohkem tähte või kolm numbrit:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! 1 12 !'
Näide
Vertikaalne joon võib jagada regulaaravaldise mitte kaheks osaks, vaid suvaliseks arvuks osadeks:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! ddd'
Näide
Kui vertikaalne joon asub ümarsulgude
sees, siis 'või' töötab ainult
nende sulgude sees.
Näitena otsime üles stringid järgmise
mustri järgi: alguses on kas 'a',
või 'b' üks või mitu korda, ja seejärel
kaks tähte 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! exx'
Praktilised ülesanded
Antud string:
let str = 'aeeea aeea aea axa axxa axxxa';
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: servades on tähed 'a',
ja nende vahel - kas täht 'e' suvaline
arv kordi või täht 'x' suvaline
arv kordi.
Antud string:
let str = 'aeeea aeea aea axa axxa axxxa';
Kirjutage regulaaravaldis, mis leiab stringid
vastavalt mustrile: servades on tähed 'a',
ja nende vahel - kas täht 'e' kaks korda
või täht 'x' suvaline arv kordi.