p0ll0 ha scritto:
Mettiamo che io devo inserire un nome utente. Il nome utente può contenere solo questi caratteri
zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM_ come si fa?
Beh ma allora devi ancora "capire" le espressioni regolari! Innanzitutto in Java il supporto alle regex è stato introdotto in Java 1.4 (quindi mooooolto tempo fa).
Tutti i servizi sulle regex si trovano nel package java.util.regex e le due classi principali sono Pattern e Matcher. Poi altre classi del framework come String e Scanner sfruttano quei servizi.
La documentazione di tutti i costrutti accettati dalle regex in Java si trova nel javadoc di
Pattern.
Nota che quei costrutti non sono tutti "universali". In altri linguaggi/contesti ci possono essere differenze. Se trovi una regex che è valida per il linguaggio Perl, non è detto che funzioni in Python o in Javascript o in Java.
Comunque l'esempio di prima: [01]+
La parte [ ] è una "classe" di caratteri. E' sostanzialmente una "OR" tra più caratteri. [ABC] vuol dire: o A o B o C. E attenzione che in una classe di caratteri si possono anche mettere degli intervalli es. [A-Z] vuol dire da A alla Z. E si può anche fare una "negazione" della classe di caratteri.
Il "+" vuol dire "uno o più" del precedente costrutto (che nell'esempio è l'intera classe di caratteri).
Da qui, deduci tu come "zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPLKJHGFDSAZXCVBNM_" può essere usata.