Operátory opakovania znakov v regulárnych výrazoch
Vyskytujú sa situácie, keď chceme určiť,
že znak sa opakuje daný počet krát.
Ak poznáme presný počet opakovaní,
môžeme ho jednoducho napísať viackrát
- /aaaa/. Ale čo robiť, ak chceme
povedať toto: opakovať jeden alebo viac
krát?
Na to existujú operátory (kvantifikátory)
opakovania: plus + (jeden alebo viac krát),
hviezdička * (nula alebo viac krát) a
otáznik ? (nula alebo jeden krát). Tieto
operátory pôsobia na znak, ktorý
stojí pred nimi.
Pozrime sa na prácu týchto operátorov na príkladoch.
Príklad
Nájdeme všetky podreťazce podľa vzoru písmeno
'x', písmeno 'a' jeden alebo viac
krát, písmeno 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Výsledkom do premennej sa zapíše nasledovné:
'xx ! ! ! xbx'
Príklad
Nájdeme všetky podreťazce podľa vzoru písmeno
'x', písmeno 'a' nula alebo viac
krát, písmeno 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Výsledkom do premennej sa zapíše nasledovné:
'! ! ! ! xbx'
Príklad
Nájdeme všetky podreťazce podľa vzoru písmeno
'x', písmeno 'a' nula alebo jeden
krát, písmeno 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Výsledkom do premennej sa zapíše nasledovné:
'! ! xaax xbx'
Praktické úlohy
Daný reťazec:
let str = 'aa aba abba abbba abca abea';
Napíšte regulárny výraz, ktorý nájde reťazce
'aba', 'abba', 'abbba'
podľa vzoru: písmeno 'a', písmeno 'b'
ľubovoľný počet krát, písmeno 'a'.
Daný reťazec:
let str = 'aa aba abba abbba abca abea';
Napíšte regulárny výraz, ktorý nájde reťazce
'aa', 'aba', 'abba',
'abbba' podľa vzoru: písmeno 'a',
písmeno 'b' ľubovoľný počet krát (vrátane
žiadneho krát), písmeno 'a'.
Daný reťazec:
let str = 'aa aba abba abbba abca abea';
Napíšte regulárny výraz, ktorý nájde reťazce
'aa', 'aba' podľa vzoru: písmeno
'a', písmeno 'b' jeden krát alebo
žiadny, písmeno 'a'.
Daný reťazec:
let str = 'aa aba abba abbba abca abea';
Napíšte regulárny výraz, ktorý nájde reťazce
'aa', 'aba', 'abba',
'abbba', bez zachytenia 'abca'
a 'abea'.