15 de febrero de 2011

Expresiones Regulares Comunes (Ejemplos)

Este es un post inicialmente pequeño, pero que pretendo ir enriqueciendo a medida que me encuentre con la necesidad de uso de distintas expresiones regulares en mi trabajo cotidiano.

Ejemplos de Expresiones Regulares en .Net (Regular Expressions .Net)

1. Expresión Regular: Solo Números, Letras y Espacio en Blanco

//Permitir solo números, letras y espacios en blanco

Regex rex = new Regex("^[A-Z0-9 a-z]*$");

if (!rex.IsMatch(this.DocumentoNo))

  throw new Exception("La cadena no tiene el formato correcto.");

 

2. Expresión Regular: ¿Es valido el email?

//Definir si la cadena es una dirección de mail valida

public static bool IsValidEmail(this string strEmail)

{

  return Regex.IsMatch(strEmail, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");

}

 

3. Expresión Regular: Eliminar caracteres extraños

/// <summary>

/// Replace invalid characters with empty strings.

/// </summary>

public static string StringClean(string strIn)

{

  return Regex.Replace(strIn, @"[^\w\.@-]", "");

}

 

Nota: De momento solo esta, de a poco iré adicionando otras expresiones regulares, de cualquier manera los invito a compartir aquellas expresiones que consideren útiles para la comunidad de desarrolladores.

Las expresiones regulares que están incluidas, las he ido copiando de diferentes blogs, y de la ayuda del MSDN.

2 comentarios:

  1. Hay una pagina muy buena donde vienen un monton de ejemplos de expresiones regulares: http://www.regexlib.com/

    ResponderEliminar
  2. Hola Derbis, te queria hacer una consulta bien basica, como se utilizan estas expression regular? En cada una de mis clases vb tendria que colocar los metodos que aqui indicas (según necesidad)?

    Como es la forma correcta supongamos tengo 3 formularios que requieren e-mail, no creo que en cada una de mis paginas tenga que tener el método que aqui indicas para validar el e-mail.

    Esop, espero que me entiendas.

    ResponderEliminar