Como programadores, de vez en cuando nos encontramos con la necesidad de validar ciertos datos como por ejemplo un email introducido por un usuario, para esto podemos utilizar las expresiones regulares, son muy conocidas por los programadores Perl aunque se pueden utilizar desde multitud de diversos lenguajes (e.g. Java, C#…). Con las expresiones regulares lo que hacemos es definir patrones de caracteres que queremos encontrar, por ejemplo para definir una fecha podriamos decir que tiene 2 número 1 barra 2 numeros 1 barra y 4 numeros, de esta forma podriamos comprobar si lo que ha introducido el usuario (e.g. 23/06/2004) es una fecha correcta en cuanto a estructura (no se comprobaria que el mes fuese un 99). Para poder definir dichos patrones se utilizan las expresiones regulares, lo bueno es que podemos encontrar una completa colección de dichas expresiones en Regular Expression Library.
Un ejemplo de validación de emails en Java:
import java.util.regex.Matcher; import java.util.regex.Pattern; ... public boolean validarEmail(String email) { // Expressio regular extreta de http://regexlib.com/ Pattern p = Pattern.compile("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"); Matcher m = p.matcher(email); if (m.find()) { return true; } else { return false; } }
La expresión regular anterior no funciona correctamente. Da errores de compilación. Lo que ha funcionado ha sido lo siguiente:
Pattern.compile(“^([0-9a-zA-Z]([-.a-zA-Z_0-9])*[0-9a-zA-Z])*@([0-9a-zA-Z][-a-zA-Z_0-9]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$”);
Ninguno de los dos me funciono pero este ya esta probado y me funciona 😀
Pattern p = Pattern.compile(“^([0-9a-zA-Z]([-.a-zA-Z_0-9])*[0-9a-zA-Z])*@([0-9a-zA-Z][-a-zA-Z_0-9]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9}$”);
No puedes ingresar un email con 2 puntos consecutivos, la validacion te lo permite.
saludos
La expresion regular esa es incorrecta, no sirve para validar emails.
Es ya el tercer sitio donde veo la misma, Dejad de copiar y cread contenidos propios!!!!!!!
Soy poseedor de la verdá y de los sentimientos. Esta funciona correctamente:
\"^([0-9a-zA-Z]([_.w]*[-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)*([a-zA-Z]{1,9}.)+[a-zA-Z]{2,3})$\"