Parentesi graffe nelle espressioni regolari JavaScript
Gli operatori '+', '*', '?'
sono utili, tuttavia, con il loro aiuto non è possibile specificare
un numero esatto di ripetizioni. In questo caso
viene in vostro aiuto l'operatore {}.
Funziona nel modo seguente: {5}
- cinque ripetizioni, {2,5} – si ripete
da due a cinque volte (entrambi inclusi), {2,}
- si ripete due o più volte. Prestate attenzione
al fatto che questa variante - {,2}
- non esiste. Guardate gli esempi:
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'x', lettera 'a' una
o due volte, lettera 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xx ! ! xaaax'
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'x', lettera 'a' due
volte o più, lettera 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xx xax ! !'
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'x', lettera 'a' tre
volte, lettera 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xx xax xaax !'
Esempio
In questo esempio il modello di ricerca è il seguente:
lettera 'a' dieci volte:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'aaa ! aaa'
Esempio
In questo esempio l'autore del codice voleva questo modello:
lettera 'x', lettera 'a' tre
volte o meno, lettera 'x',
ma, sfortunatamente, questo - {,3} - non funziona.
Bisogna specificare esplicitamente:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xx ! ! !'
Esempio
Anche zero è consentito:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! !'
Problemi pratici
Data una stringa:
let str = 'aa aba abba abbba abbbba abbbbba';
Scrivi un'espressione regolare che trovi le stringhe
'abba', 'abbba', 'abbbba'
e solo quelle.
Data una stringa:
let str = 'aa aba abba abbba abbbba abbbbba';
Scrivi un'espressione regolare che trovi le stringhe
del tipo 'aba', in cui 'b' appare
meno di 3 volte (incluso).
Data una stringa:
let str = 'aa aba abba abbba abbbba abbbbba';
Scrivi un'espressione regolare che trovi le stringhe
del tipo 'aba', in cui 'b' appare
più di 4 volte (incluso).