Le espressioni regolari rappresentano uno strumento molto potente per lavorare sulle stringhe. Possono essere utilizzate, sia per convalidare i dati, sia per effettuare ricerche all’interno di un testo. La sintassi di questo pseudo-linguaggio è molto flessibile e consente di creare espressioni in base alle proprie esigenze.
Dalla versione 1.4 di Java (in linea con quanto fatto già da PHP, javascript, Ruby e altri), è stato introdotto il package java.util.regex composto dalle classi Pattern e Matcher che permettono di validare una stringa, o ricercare un testo al suo interno, a partire da un’espressione regolare.
Per definire un’espressione regolare è necessario conoscere alcune regole base:
- […]
Insieme di caratteri validi;
- [^…]
Insieme negato di caratteri validi;
- –
Intervallo;
- &&
Intersezione;
- .
Qualunque carattere;
- +
Concatenazione;
- RE*
Cardinalità multipla (0 o più occorrenze dell’espressione RE);
- RE{n}
Cardinalità multipla (esattamente n occorrenze dell’espressione RE);
- RE{n,}
Cardinalità multipla (almeno n occorrenze dell’espressione RE);
- RE{n,m}
Cardinalità multipla (almeno n occorrenze dell’espressione RE, ma non più di m).
Facciamo alcuni esempi semplici per chiarire meglio le regole:
- [abc]
Espressione che contiene un solo carattere tra a, b, o c;
- [^abc]
Espressione che contiene un solo carattere, tutti sono validi, ad esclusione di a, b, o c;
- [a-z]
Espressione che contiene un solo carattere tra quelli del range a-z;
- [a-d[m-p]]
Espressione che contiene un solo carattere tra quelli del range a-d e del range m-p (unione);
- [a-z&&[def]]
Espressione che contiene un solo carattere tra quelli comuni del range a-z e dell’insieme (d, e, f) (intersezione);
- [a-z&&[^bc]]
Espressione che contiene un solo carattere tra quelli comuni del range a-z e dell’insieme negato (b, f) (intersezione);
- [a-z&&[^m-p]]
Espressione che contiene un solo carattere tra quelli comuni del range a-z e del range negato (m-p) (intersezione).
Se vuoi aggiornamenti su Espressioni regolari in Java inserisci la tua e-mail nel box qui sotto:
inserisci la tua e-mail nel box qui sotto: