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:

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

Tulemusena kirjutatakse muutujasse järgmine:

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

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

Tulemusena kirjutatakse muutujasse järgmine:

javascript'! ! ! ! xbx'

Näide

Leiame kõik alamstringid mustri täht 'x', täht 'a' null või üks kord, täht 'x' järgi:

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

Tulemusena kirjutatakse muutujasse järgmine:

javascript'! ! xaax xbx'

Praktilised ülesanded

Задание 1

Antud on string:

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

Задание 2

Antud on string:

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

Задание 3

Antud on string:

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

Задание 4

Antud on string:

javascriptlet str = 'aa aba abba abbba abca abea';

Kirjutage regulaaravaldis, mis leiab stringid 'aa', 'aba', 'abba', 'abbba', ei haara 'abca' ega 'abea'.