'Eller'-kommandoen i regulære udtryk i JavaScript
I denne lektion vil vi analysere kommandoen
'|', som repræsenterer en mere
kraftfuld version af 'eller' sammenlignet
med kommandoen [ ]. Denne kommando tillader
at opdele det regulære udtryk i flere dele.
Søgningen kan enten matche én
del af det regulære udtryk eller en anden. Lad os
se på eksempler.
Eksempel
I dette eksempel er søgemønsteret sådan: tre
bogstaver 'a' eller tre bogstaver 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Resultatet i variablen vil være følgende:
'! ! abb'
Eksempel
I dette eksempel er søgemønsteret sådan: tre
bogstaver 'a' eller fra 1 og derover
bogstaver 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! ! axx'
Eksempel
I dette eksempel er søgemønsteret sådan: ét eller flere bogstaver eller tre cifre:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! 1 12 !'
Eksempel
Det lodrette streg kan opdele det regulære udtryk i ikke kun to dele, men i et vilkårligt antal dele:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! ddd'
Eksempel
Hvis det lodrette streg står inde i runde
parenteser, så virker 'eller' kun inde i
disse parenteser.
Lad os som eksempel finde strenge efter følgende
mønster: i starten står enten 'a',
eller 'b' én eller flere gange, og derefter
to bogstaver 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Resultatet i variablen vil være følgende:
'! ! ! exx'
Praktiske opgaver
Givet en streng:
let str = 'aeeea aeea aea axa axxa axxxa';
Skriv et regulært udtryk, der finder strenge
efter mønsteret: der er bogstaver 'a' i kanterne,
og imellem dem - enten bogstavet 'e' et vilkårligt
antal gange eller bogstavet 'x' et vilkårligt
antal gange.
Givet en streng:
let str = 'aeeea aeea aea axa axxa axxxa';
Skriv et regulært udtryk, der finder strenge
efter mønsteret: der er bogstaver 'a' i kanterne,
og imellem dem - enten bogstavet 'e' to gange
eller bogstavet 'x' et vilkårligt antal gange.