La clase Regex y las Expresiones Regulares
Uno de los mayores problemas que tenemos los programadores es el tema de las validaciones, .Net ofrece una clase que permite trabajar con expresiones regulares y podríamos hacer las validaciones con ellas para validar entradas provenientes de una base de datos, o ingresadas a través de un DataGridView en un Windows Form o ingresadas de alguna manera que no pudiesemos controlar adecuadamente. Pero ¿que son las expresiones regulares? Es un modelo que describe la forma que debe tener una cadena según nuestra necesidad. Una descripción completa y casi un cursillo al respecto la tiene Wikipedia en este enlace.
A continuación pondré un ejemplo sencillo de como hacer una validación de una dirección de correo electrónico usando C# y expresiones regulares:
public static bool IsEmail(string correo)
{
string modelo = @”^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})| ([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$”
Regex re = new Regex(modelo);
if (re.IsMatch(correo))
return true;
else
return false;
}
Previamente debemos importar el namespace correspondiente de la siguiente manera:
using System.Text.RegularExpressions;
Este método estático (significa que no requiere que se instancie la clase para ser usado) bien puede estar dentro de una clase que provea funciones útiles para la aplicación.
Aquí la expresión regular es ^([\w\d\-\.]+)@{1}(([\w\d\-]{1,67})| ([\w\d\-]+\.[\w\d\-]{1,67}))\.(([a-zA-Z\d]{2,4})(\.[a-zA-Z\d]{2})?)$ (sin espacios en blanco) y es en base a esta cadena que se usa el método IsMatch de la clase Regex para hacer la validación, la expresión regular se incluye en el constructor de la clase como se ve en el ejemplo. Así mismo se podrían incluir métodos estáticos para validar decimales, valores positivos, etc.
Un artículo más amplio al respecto lo encuentran en Subgurim.net en donde ya se han publicado tutoriales y ejemplos acerca de este tema en las siguientes direcciones:
- http://www.subgurim.net/articulos/asp-net-general-articulo14.aspx
- http://www.subgurim.net/articulos/asp-net-general-articulo20.aspx
Por cierto, ambos, muy interesantes, pero para aquellos que no desean aprender a escribir las expresiones regulares se encuentra el site http://regexlib.com/ que les permitirá buscar alguna expresion regular para que la puedan copiar y utilizar directamente, también podrías utilizar el tutorial de http://www.regular-expressions.info/ para aprender más sobre este tema, aunque esta en inglés.
Así mismo puedes descargar la utilidad Expresso 2.1, el cual es un programa que permite generar tus expresiones regulares, bastante interesante.
Espero que les sea de utilidad.
Saludos






Leave a Reply