Set di caratteri nelle espressioni regolari JavaScript
I gruppi di caratteri \d e \w non
sono molto flessibili. Anche un compito semplice come
trovare tutte le lettere, ma non i numeri -
non può essere risolto con loro. Per tali compiti
si dovrebbero usare le parentesi quadre, che rappresentano
l'operazione 'o'.
Le parentesi quadre sostituiscono un carattere,
qualsiasi di quelli elencati all'interno. Ad esempio,
così: /x[abc]x/ - stiamo dicendo che
ai bordi devono esserci le lettere x, e all'interno
- un carattere: o 'a', o 'b',
o 'c'.
Dopo le parentesi quadre si possono scrivere operatori
di ripetizione. Ad esempio, così: /x[abc]+x/
- stiamo dicendo che tra le x può esserci
qualsiasi quantità di caratteri 'a', 'b'
e 'c' - in qualsiasi combinazione.
Si possono non solo elencare caratteri, ma creare
gruppi di caratteri, scrivendo un trattino tra due caratteri.
Ad esempio, così: [a-d] -
otteniamo tutti i caratteri da 'a' a
'd'.
Vediamo alcuni esempi.
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'a'
a 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'a'
a 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! xmx x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'A'
a 'Z':
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xax ! xcx x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi cifra da 0 a 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xax ! ! ! x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi cifra da 3 a 7:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xax x1x ! ! x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'a'
a 'z' o cifra da 1 a 9:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'a'
a 'z' o lettera da 'A' a
'Z':
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! x5x x@x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x qualsiasi lettera da 'a'
a 'z' o le cifre 1, 2:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! x3x'
Esempio
In questo esempio il modello di ricerca è il seguente:
tra le x lettere da 'a' a 'z'
in quantità da 1 e più:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'xx ! ! ! x123x xa3x'
Esempio
Facciamo in modo che la quantità di lettere possa essere anche zero:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! x123x xa3x'
Problemi pratici
Data la stringa:
let str = 'aba aea aca aza axa';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - la lettera 'b', 'e'
o 'x'.
Data la stringa:
let str = 'a1a a3a a7a a9a aba';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - una cifra da 3 a 6.
Data la stringa:
let str = 'aba aea afa aha aga';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - una lettera da a a g.
Data la stringa:
let str = 'aba aea afa aha aga';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - una lettera da a a f e da j a z.
Data la stringa:
let str = 'aAa aea aEa aJa a3a';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - una lettera da a a f e da A a D.
Data la stringa:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - lettere latine minuscole,
senza toccare le altre.
Data la stringa:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - lettere latine minuscole e maiuscole, senza toccare le altre.
Data la stringa:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Scrivi un'espressione regolare che trovi secondo il seguente
modello: ai bordi ci sono le lettere 'a',
e tra di loro - lettere latine minuscole
e cifre, senza toccare le altre.