Simbolių pasikartojimo operatoriai
Būna situacijų, kai norime nurodyti,
kad simbolis kartojamas nurodytą skaičių
kartų. Jei žinome tikslų pasikartojimų skaičių,
tai galime tiesiog parašyti jį kelis kartus
- /aaaa/. Bet ką daryti, jei norime
pasakyti taip: pakartoti vieną ar daugiau
kartų?
Tam yra pasikartojimo operatoriai (kvantifikatoriai):
pliusas + (vieną ar daugiau kartų),
žvaigždutė * (nulis ar daugiau kartų) ir
klaustukas ? (nulis ar vieną kartą). Šie
operatoriai veikia tą simbolį, kuris
stovi prieš juos.
Pažiūrėkime į šių operatorių veikimą pavyzdžiuose.
Pavyzdys
Raskime visas eilutes pagal šabloną raidė
'x', raidė 'a' vieną ar daugiau
kartų, raidė 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'xx ! ! ! xbx'
Pavyzdys
Raskime visas eilutes pagal šabloną raidė
'x', raidė 'a' nulis ar daugiau
kartų, raidė 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! ! xbx'
Pavyzdys
Raskime visas eilutes pagal šabloną raidė
'x', raidė 'a' nulis ar vieną
kartą, raidė 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! xaax xbx'
Praktinės užduotys
Duota eilutė:
let str = 'aa aba abba abbba abca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'aba', 'abba', 'abbba'
pagal šabloną: raidė 'a', raidė 'b'
bet kiek kartų, raidė 'a'.
Duota eilutė:
let str = 'aa aba abba abbba abca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'aa', 'aba', 'abba',
'abbba' pagal šabloną: raidė 'a',
raidė 'b' bet kiek kartų (įskaitant
nei vieno karto), raidė 'a'.
Duota eilutė:
let str = 'aa aba abba abbba abca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'aa', 'aba' pagal šabloną: raidė
'a', raidė 'b' vieną kartą arba
nei karto, raidė 'a'.
Duota eilutė:
let str = 'aa aba abba abbba abca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'aa', 'aba', 'abba',
'abbba', neperimdama 'abca'
ir 'abea'.