I set di caratteri nelle regex

I set di caratteri sono usati in un'espressione regolare per individuare un gruppo di caratteri in una data posizione. Il set di caratteri è racchiuso tra parentesi quadre.

Tra parentesi quadre si può indicare l'elenco dei caratteri ammessi alla selezione ( es. [abcde] ), un intervallo di caratteri ( es. [a-z] ) e/o una negazione per escluderne alcuni ( es. [a-z^xy] ).

Ecco alcuni esempi pratici.

Come selezionare un gruppo di caratteri

In un testo voglio individuare i termini "viale" e "Viale".

Utilizzando i set di caratteri posso scrivere l'espressione regolare in questo modo [vV]iale.

come selezionare un gruppo di caratteri

Il matching seleziona le stringhe "iale" che cominciano con "v" oppure con "V".

Nota. In questo modo ottengo lo stesso risultato della regex "viale|Viale" ma l'espressione è più corta. Se le combinazioni della stringa da cercare sono molte, il set di carattere accorcia l'espressione regolare a pochi caratteri.

Come selezionare qualsiasi lettera

Nel testo seguente voglio cercare tutti i caratteri dell'alfabeto.

Posso scrivere nel seguente modo [a-z].

come selezionare tutte le lettere dell'alfabeto


Il trattino è il separatore tra la prima (a) e l'ultima lettera (z) dell'insieme dei caratteri ammessi.

In questo caso non ho espressamente indicato tutti i caratteri ma ho usato un intervallo.

Nota. Se avessi dovuto indicare espressamente tutti i caratteri ammessi, avrei dovuto scrivere [abcdefghijklmnopqrstuvwxyz]. Lo stesso risultato lo ottengo con la forma contratta [a-z].

C'è però un problema, la precedente regex seleziona soltanto le lettere minuscole [a-z].

Per selezionare anche il gruppo delle lettere maiuscole, devo aggiungere nel gruppo di caratteri un altro intervallo [A-Z].

come selezionare tutte le lettere maiuscole e minuscole nel testo

Ora l'espressione regolare seleziona correttamente tutte le lettere dell'alfabeto presenti nel testo.

Come selezionare qualsiasi lettera o numero

Per selezionare sia le lettere che i numeri, posso scrivere la regex con tre intervalli.

come selezionare i numeri e le lettere

L'intervallo a-z seleziona le lettere minuscole, l'intervallo A-Z le lettere maiuscole e, infine, l'intervallo 0-9 i numeri.

Come escludere un carattere

In alcuni casi potrebbe essere necessario escludere uno o più caratteri dalla selezione. Si può fare tramite la negazione ^.

Ad esempio, voglio selezionare qualsiasi carattere tranne i numeri.

Posso scrivere nel seguente modo [^0-9].

come selezionare tutto tranne un gruppo di caratteri

L'espressione regolare seleziona tutti i caratteri del testo tranne i numeri.

Importante. L'accento circonflesso ^ funziona soltanto quando si trova alla prima posizione dopo l'apertura della parentesi quadra. Se si trova in un'altra posizione ( seconda, terza, ecc. ) viene considerato come un carattere qualsiasi. Ad esempio, la regex [a-z^b] non esclude il carattere b dalla selezione a-z, bensì aggiunge il carattere ^ al matching.
la negazione va usata sempre alla prima posizione del set di caratteri

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Regular expressions