Kommandot 'eller' i reguljära uttryck i JavaScript
I den här lektionen kommer vi att analysera kommandot
'|', som representerar en mer
kraftfull version av 'eller' jämfört
med kommandot [ ]. Detta kommando tillåter
att dela upp det reguljära uttrycket i flera delar.
Sökmålet kan antingen matcha en del
av det reguljära uttrycket eller en annan. Låt oss
titta på exempel.
Exempel
I detta exempel är sökmönstret: tre
bokstäver 'a' eller tre bokstäver 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Som ett resultat kommer följande att skrivas in i variabeln:
'! ! abb'
Exempel
I detta exempel är sökmönstret: tre
bokstäver 'a' eller från 1 och fler
bokstäver 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Som ett resultat kommer följande att skrivas in i variabeln:
'! ! ! ! axx'
Exempel
I detta exempel är sökmönstret: en eller flera bokstäver eller tre siffror:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Som ett resultat kommer följande att skrivas in i variabeln:
'! ! ! 1 12 !'
Exempel
Det vertikala strecket kan dela upp det reguljära uttrycket inte i två delar, utan i valfritt antal delar:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Som ett resultat kommer följande att skrivas in i variabeln:
'! ! ! ddd'
Exempel
Om det vertikala strecket står innanför runda
parenteser, så fungerar 'eller' endast innanför
dessa parenteser.
Låt oss som ett exempel hitta strängar enligt följande
mönster: i början står antingen 'a',
eller 'b' en eller flera gånger, och sedan
två bokstäver 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Som ett resultat kommer följande att skrivas in i variabeln:
'! ! ! exx'
Praktiska uppgifter
Given en sträng:
let str = 'aeeea aeea aea axa axxa axxxa';
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: vid kanterna står bokstäverna 'a',
och mellan dem - antingen bokstaven 'e' valfritt
antal gånger eller bokstaven 'x' valfritt
antal gånger.
Given en sträng:
let str = 'aeeea aeea aea axa axxa axxxa';
Skriv ett reguljärt uttryck som hittar strängar
enligt mönstret: vid kanterna står bokstäverna 'a',
och mellan dem - antingen bokstaven 'e' två gånger
eller bokstaven 'x' valfritt antal gånger.