Príkaz 'alebo' v regulárnych výrazoch JavaScript
V tejto lekcii rozoberieme príkaz
'|', ktorý predstavuje
výkonnejšiu variantu 'alebo' v porovnaní
s príkazom [ ]. Tento príkaz umožňuje
rozdeliť regulárny výraz na niekoľko častí.
Pričom hľadaný reťazec môže spĺňať buď jednu
časť regulárneho výrazu, alebo druhú. Pozrime sa
na príkladoch.
Príklad
V tomto príklade je vyhľadávací vzor takýto: tri
písmená 'a' alebo tri písmená 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Výsledkom do premennej zapíšeme nasledovné:
'! ! abb'
Príklad
V tomto príklade je vyhľadávací vzor takýto: tri
písmená 'a' alebo od 1 a viac
písmen 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Výsledkom do premennej zapíšeme nasledovné:
'! ! ! ! axx'
Príklad
V tomto príklade je vyhľadávací vzor takýto: jedno alebo viac písmen alebo tri číslice:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Výsledkom do premennej zapíšeme nasledovné:
'! ! ! 1 12 !'
Príklad
Zvislá čiara môže rozdeliť regulárny výraz nie na dve časti, ale na ľubovoľný počet častí:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Výsledkom do premennej zapíšeme nasledovné:
'! ! ! ddd'
Príklad
Ak zvislá čiara stojí v okrúhlych
zátvorkách, potom 'alebo' funguje len v rámci
týchto zátvoriek.
Pre príklad nájdime reťazce podľa nasledujúceho
vyhľadávacieho vzoru: na začiatku je alebo 'a',
alebo 'b' jeden alebo viac krát, a potom
dve písmená 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Výsledkom do premennej zapíšeme nasledovné:
'! ! ! exx'
Praktické úlohy
Daný reťazec:
let str = 'aeeea aeea aea axa axxa axxxa';
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: po okrajoch stoja písmená 'a',
a medzi nimi - alebo písmeno 'e' ľubovoľný
počet krát alebo písmeno 'x' ľubovoľný
počet krát.
Daný reťazec:
let str = 'aeeea aeea aea axa axxa axxxa';
Napíšte regulárny výraz, ktorý nájde reťazce
podľa vzoru: po okrajoch stoja písmená 'a',
a medzi nimi - alebo písmeno 'e' dva krát
alebo písmeno 'x' ľubovoľný počet krát.