Ciao,
Sto facendo un programma in cui mi serve anche validare un indirizzo e-mail. Ho un piccolo problema nel comporre la REGEX dello user-id.
I criteri per parsarlo (non ho seguito per filo e per segno l'RFC) sono i seguenti:
1. Non deve iniziare e terminare con "." ....[OK]
2. Può contenere caratteri ASCII ....[OK]
3. Lunghezza compresa tra i 4 e 64 caratteri....[OK]
4. Non deve contenere più punti consecutivi....[KO]![]()
5. non deve contenere spazi o tab....[KO]![]()
Quindi la REGEX assume questa forma(delimitatori inizio e fine riga li aggiungo poi):
"([\\p{ASCII}&&[^\\.]][\\p{ASCII}]*[\\p{ASCII}&&[^\\.]]){3,63}"
Il mio problema nasce quando cerco di aggiungere i vincoli che non debba contenere uno o più spazi/tab e 2 o più punti consecutivi. (es. "nome<spazio>cognome@dominio.it" o "nome..cognome@dominio.it").
Ho provato con: "([\\p{ASCII}&&[^\\.]][\\p{ASCII}&&[^(\\.\\.)+] ]*[\\p{ASCII}&&[^\\.]]){3,63}" ed una cosa simile per gli spazi ma si comporta in modo strano, tipo che mi funziona solo con un numero pari di occorrenze e così via.
Provato anche con: &&[^\\.]{2,}, ma nulla.![]()
qualcuno saprebbe darmi un suggerimento?
P.S.:So che esistono javamail o altre librerie, ma il mio scopo è familiarizzare con le regular expression.

Rispondi quotando