Il comando 'o' nelle espressioni regolari JavaScript
In questa lezione analizzeremo il comando
'|', che rappresenta una versione più
potente di 'o' rispetto
al comando [ ]. Questo comando permette
di dividere l'espressione regolare in più parti.
In questo caso, ciò che si cerca può corrispondere a una
parte dell'espressione regolare, o all'altra. Vediamo
con degli esempi.
Esempio
In questo esempio il modello di ricerca è: tre
lettere 'a' o tre lettere 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! abb'
Esempio
In questo esempio il modello di ricerca è: tre
lettere 'a' o da 1 a più
lettere 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! axx'
Esempio
In questo esempio il modello di ricerca è: una o più lettere o tre cifre:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! 1 12 !'
Esempio
Il carattere verticale può dividere l'espressione regolare non in due parti, ma in un numero qualsiasi di parti:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ddd'
Esempio
Se il carattere verticale si trova all'interno di parentesi
tonde, allora 'o' funziona solo all'interno
di quelle parentesi.
Ad esempio, cerchiamo le stringhe secondo il seguente
modello: all'inizio c'è o 'a',
o 'b' una o più volte, e poi
due lettere 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! exx'
Problemi pratici
Data una stringa:
let str = 'aeeea aeea aea axa axxa axxxa';
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: ai lati ci sono le lettere 'a',
e tra di loro - o la lettera 'e' un numero qualsiasi
di volte o la lettera 'x' un numero qualsiasi
di volte.
Data una stringa:
let str = 'aeeea aeea aea axa axxa axxxa';
Scrivi un'espressione regolare che trovi le stringhe
secondo il modello: ai lati ci sono le lettere 'a',
e tra di loro - o la lettera 'e' due volte
o la lettera 'x' un numero qualsiasi di volte.