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':

javascriptlet str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');

Kot rezultat se bo v spremenljivko zapisalo naslednje:

javascript'xx ! ! ! xbx'

Primer

Poiščimo vse podnize po vzorcu črka 'x', črka 'a' ničkrat ali večkrat, črka 'x':

javascriptlet str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');

Kot rezultat se bo v spremenljivko zapisalo naslednje:

javascript'! ! ! ! xbx'

Primer

Poiščimo vse podnize po vzorcu črka 'x', črka 'a' ničkrat ali enkrat, črka 'x':

javascriptlet str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');

Kot rezultat se bo v spremenljivko zapisalo naslednje:

javascript'! ! xaax xbx'

Praktične naloge

Задание 1

Podan je niz:

javascriptlet 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'.

Задание 2

Podan je niz:

javascriptlet 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'.

Задание 3

Podan je niz:

javascriptlet 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'.

Задание 4

Podan je niz:

javascriptlet 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'.