He de reconocer que esta certificación cada día me abre las puertas a formas de desarrollar más simples y eficiente. Y también he de reconocer que los programadores tenemos tendencia a si no entendemos el concepto en los primeros quince minutos, olvidarnos del tema y seguir con la cuenta de la abuela.
Esto viene al caso porque hoy estoy liado con un proyecto personal y estoy haciendo la validación de los campos de una clase dentro de un método privado. Y me he acordado del lio de condicionales que tienes que montar para validar un email, y más aún ahora con los subdominios tipo .com.ar o .eu.nom.
Y he vuelto a recuperar una vieja investigación que dejé en su momento y que me ha vuelto aparecer en la certificación. Expresiones regulares.
No voy a hacer un discurso de qué son y porqué son tan raras. Pero si hay que dejar clarísimo que es el método más eficiente, compacto y elegante para extraer información de cadenas alfanuméricas para, por ejemplo, validar que cumple los requisitos necesarios.
En .NET 2.0 está chupado:
Primero importamos la clase System.Text.RegularExpressions, despues creamos una variable del tipo Regex. A continuación la instanciamos con la cadena que contiene la expresión regular… y ya ta!!
Mirad que sencillo:
Private Function compruebaEmail() As Boolean
Dim ok As Boolean = False
Dim r As Regex
r = New Regex("^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$")
ok = r.IsMatch(email)
Return ok
End Function
Lo más lioso, con mucho, es la construcción de la expresión regular en sí, pero para ello existen librerías muy completas en Internet.
A continuación os pongo unos enlaces recomendados:
1. El sitio del “boss” de Visual Basic.Net en España… El Guille:
2. La mejor y más completa librería de expresiones regulares que he encontrado:
3. Wikipedia en Español:
Eha, a disfrutarlo.
2 comentarios:
Passa!
Aquí te dejo otro enlace: http://www.regular-expressions.info/reference.html
Y no, no se puede vivir sin expresiones regulares. Lo malo es que te das cuenta justo cuando aprendes a utilizarlas :-D
Yo las uso en PHP y es igual o más fácil :-P
Muy bueno el enlace, Kashopan. Mil gracias.
Publicar un comentario