jueves, 3 de enero de 2008

Expresiones Regulares, esas grandes desaprovechadas.

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:

Kashopi dijo...

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

Juan Quijano dijo...

Muy bueno el enlace, Kashopan. Mil gracias.