Gruppi di caratteri nelle espressioni regolari JavaScript
Esistono comandi speciali che permettono di
selezionare interi gruppi di caratteri contemporaneamente. Il comando
\d indica una cifra da 0 a 9.
Il comando \w indica una cifra, una lettera
latina o il carattere di sottolineatura. Il comando \s
indica uno spazio o un carattere di spaziatura:
spazio, ritorno a capo, tabulazione. È possibile
invertire il significato del comando, scrivendo una lettera
maiuscola: ad esempio, se \d è una cifra,
allora \D è un non-cifra.
Esempio
Troviamo tutte le cifre:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! !! !!!'
Esempio
Gli operatori di ripetizione considerano i comandi di gruppo
come un unico elemento, quindi le parentesi raggruppanti
non sono necessarie. Nell'esempio seguente, il pattern di ricerca
è il seguente: cifra da 0 a 9
una o più volte:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! abc @@@'
Esempio
Nel seguente esempio, il pattern di ricerca è
il seguente: qualsiasi cosa una o più volte,
ma non una cifra da 0 a 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'123!3!'
Esempio
In questo esempio, il pattern di ricerca è il seguente: carattere di spaziatura una volta:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'1!12!123!abc!@@@'
Esempio
In questo esempio, il pattern di ricerca è il seguente:
carattere NON di spaziatura una o più volte.
Tutte le sottostringhe, separate da spazi, saranno sostituite
con '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! !'
Esempio
In questo esempio, il pattern di ricerca è il seguente:
cifra o lettera una o più volte.
Tutte le sottostringhe, composte da cifre e lettere,
saranno sostituite con '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'! ! ! ! @@@'
Esempio
In questo esempio, il pattern di ricerca è il seguente:
NON cifra e NON lettera una o più volte.
In base a questa definizione, nel nostro caso rientrano
'@@@' e tutti gli spazi (anche loro infatti
non sono cifre né lettere). Fate attenzione al
fatto che alla fine c'è un '!' - in esso
è stata trasformata la stringa ' @@@' - con
uno spazio iniziale:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Di conseguenza, nella variabile verrà memorizzato quanto segue:
'1!12!123!Abc!'
Problemi pratici
Data la stringa:
let str = 'a1a a2a a3a a4a a5a aba aca';
Scrivi un'espressione regolare che trovi le stringhe,
in cui ai bordi ci sono le lettere 'a',
e tra di esse c'è una cifra.
Data la stringa:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Scrivi un'espressione regolare che trovi le stringhe,
in cui ai bordi ci sono le lettere 'a',
e tra di esse c'è un numero qualsiasi di cifre.
Data la stringa:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Scrivi un'espressione regolare che trovi le stringhe,
in cui ai bordi ci sono le lettere 'a',
e tra di esse c'è un numero qualsiasi di cifre (incluso
zero cifre, cioè la stringa 'aa').
Data la stringa:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Scrivi un'espressione regolare che trovi le stringhe
del seguente tipo: ai bordi ci sono le lettere
'a' e 'b', e tra di esse - non
un numero e non uno spazio.
Data la stringa:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Scrivi un'espressione regolare che trovi le stringhe
del seguente tipo: ai bordi ci sono le lettere
'a' e 'b', e tra di esse - non
una lettera, non una cifra e non uno spazio.
Data la stringa:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Scrivi un'espressione regolare che sostituisca tutti gli spazi
con '!'.