Operatori ponavljanja znakov
Zgodijo se situacije, ko želimo navesti,
da se znak ponovi določeno število
krat. Če poznamo natančno število ponovitev,
ga lahko preprosto napišemo večkrat
- /aaaa/. Toda kaj storiti, če želimo
reči takole: ponovi enkrat ali večkrat?
Za to obstajajo operatorji (kvantifikatorji)
ponavljanja: plus + (enkrat ali večkrat),
zvezdica * (ničkrat ali večkrat) in
vprašaj ? (ničkrat ali enkrat). Ti
operatorji delujejo na znak, ki
stoji pred njimi.
Poglejmo si delovanje teh operatorjev na primerih.
Primer
Poiščimo vse podnize po vzorcu črka
'x', črka 'a' enkrat ali večkrat,
črka 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'xx ! ! ! xbx'
Primer
Poiščimo vse podnize po vzorcu črka
'x', črka 'a' ničkrat ali večkrat,
črka 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! ! ! xbx'
Primer
Poiščimo vse podnize po vzorcu črka
'x', črka 'a' ničkrat ali enkrat,
črka 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'! ! xaax xbx'
Praktične naloge
Podan je niz:
let str = 'aa aba abba abbba abca abea';
Napišite regularni izraz, ki bo poiskal nize
'aba', 'abba', 'abbba'
po vzorcu: črka 'a', črka 'b'
poljubno število krat, črka 'a'.
Podan je niz:
let str = 'aa aba abba abbba abca abea';
Napišite regularni izraz, ki bo poiskal nize
'aa', 'aba', 'abba',
'abbba' po vzorcu: črka 'a',
črka 'b' poljubno število krat (vključno
z nič krat), črka 'a'.
Podan je niz:
let str = 'aa aba abba abbba abca abea';
Napišite regularni izraz, ki bo poiskal nize
'aa', 'aba' po vzorcu: črka
'a', črka 'b' enkrat ali
ničkrat, črka 'a'.
Podan je niz:
let str = 'aa aba abba abbba abca abea';
Napišite regularni izraz, ki bo poiskal nize
'aa', 'aba', 'abba',
'abbba', ne da bi zajel 'abca'
in 'abea'.