Sümbolite kordusoperaatorid
On olukordi, kus tahame näidata,
et sümbol kordub etteantud arvu
kordi. Kui teame täpset korduste arvu,
võime selle lihtsalt mitu korda kirjutada
- /aaaa/. Aga mis teha, kui tahame
öelda nii: korda üks või rohkem korda?
Selleks on olemas kordusoperaatorid
(kvantifikaatorid): pluss + (üks või rohkem korda),
tärn * (null või rohkem korda) ja
küsimärk ? (null või üks kord). Need
operaatorid mõjuvad sümbolile, mis
nende ees seisab.
Vaatame nende operaatorite tööd näidete varal.
Näide
Leiame kõik alamstringid mustri täht
'x', täht 'a' üks või rohkem
korda, täht 'x' järgi:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'xx ! ! ! xbx'
Näide
Leiame kõik alamstringid mustri täht
'x', täht 'a' null või rohkem
korda, täht 'x' järgi:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! ! xbx'
Näide
Leiame kõik alamstringid mustri täht
'x', täht 'a' null või üks
kord, täht 'x' järgi:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! xaax xbx'
Praktilised ülesanded
Antud on string:
let str = 'aa aba abba abbba abca abea';
Kirjutage regulaaravaldis, mis leiab stringid
'aba', 'abba', 'abbba'
mustri järgi: täht 'a', täht 'b'
suvaline arv kordi, täht 'a'.
Antud on string:
let str = 'aa aba abba abbba abca abea';
Kirjutage regulaaravaldis, mis leiab stringid
'aa', 'aba', 'abba',
'abbba' mustri järgi: täht 'a',
täht 'b' suvaline arv kordi (kaasa
arvatud null korda), täht 'a'.
Antud on string:
let str = 'aa aba abba abbba abca abea';
Kirjutage regulaaravaldis, mis leiab stringid
'aa', 'aba' mustri järgi: täht
'a', täht 'b' üks kord või
mitte ühtegi, täht 'a'.
Antud on string:
let str = 'aa aba abba abbba abca abea';
Kirjutage regulaaravaldis, mis leiab stringid
'aa', 'aba', 'abba',
'abbba', ei haara 'abca'
ega 'abea'.