¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

Introducción a expresiones regulares

Diciembre de 2005

Publicado: 21 de Diciembre de 2005

Por Andy González

En esta página

Introducción Introducción
Clase Regex Clase Regex
Ejemplos de expresiones regulares Ejemplos de expresiones regulares
Acerca del autor Acerca del autor

Introducción

Las expresiones regulares son la buena manera de validar campos del texto tales como nombres, las direcciones, los números de teléfono, y otra información del usuario. Usted puede utilizarlas para obligar la entrada, aplicar reglas del formato, y mucho más. Hay varios métodos de cómo validar información. Este documento es una breve introducción a la clase de System.Text.RegularExpressions.Regex y demuestra cómo usted puede utilizar expresiones regulares.

Clase Regex

La clase Regex representa una expresión regular de sólo lectura. Contiene también métodos estáticos que permiten utilizar otras clases de expresiones regulares sin crear explícitamente instancias de objetos de las otras clases.

En el siguiente ejemplo de código se utiliza el método Regex.IsMatch para comprobar si una cadena tiene el formato de correo electrónico válido. El método IsValidEmail devuelve el valor true si la cadena contiene una dirección de correo electrónico válida; en caso contrario, devuelve false y no realiza más acciones. Puede utilizar IsValidEmail para filtrar las direcciones de correo electrónico que contienen caracteres no válidos antes de que la aplicación almacene las direcciones en una base de datos o las muestre en una página ASP.NET.

Visual Basic

bool IsValidEmail(string strIn) 
{ 
    // Return true if strIn is in valid e-mail format. 
 
    return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0- 
9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");  
}

C#

Function IsValidEmail(strIn As String) As Boolean 
    ' Return true if strIn is in valid e-mail format. 
    Return Regex.IsMatch(strIn, "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0- 
9]{1,3}\.)|(([a-zA-Z0-­9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$") 
End Function

Para obtener más información consulte la ayuda de Visual Studio 2005. También en http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000001.asp y http://www.regular-expressions.info/tutorial.html (ambos en inglés)

Ejemplos de expresiones regulares

.

.

.

Correo electrónico

"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(( [a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"

Por ejemplo name@hotmail.com

URL

"^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$"

Por ejemplo http://www.microsoft.com

Contraseña segura

"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$"

Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales

Fecha (EEUU)

"^\d{1,2}\/\d{1,2}\/\d{2,4}$"

Por ejemplo 01/01/2005

Fecha (EEUU)

"^\d{1,2}\/\d{1,2}\/\d{2,4}$"

Por ejemplo 01/01/2005

Moneda

"^(-)?\d+(\.\d\d)?$"

+ o – cantidad, sin ningún símbolo. Si tiene punto decimal, decimal, requiere 2 caracteres numéricos después del punto decimal

Númerotarjeta de crédito

"^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$"

Número tarjeta de crédito como Amex, Visa, MasterCard, Discover

Númerotelefono (Francia)

"^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"

.

Númerotelefono (España)

"^[0-9]{2,3}-? ?[0-9]{6,7}$"

.

Númerotelefono (EEUU)

"^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"

.

Código postal  (Francia)

"^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$"

.

Codigo postal  (Italia)

"^(V-|I-)?[0-9]{4}$"

.

Código postal  (Alemania)

"\b((?:0[1-46-9]\d{3})|(?:[1-357-9]\d{4})|(?:[4][0-24-9]\d{3})|(?: [6][013-9]\d{3}))\b"

.

Código postal  (España)

"^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$"

.

Código postal  (EEUU)

"^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$"

.

Númeroseguro social (Francia)  

"^((\d(\x20)\d{2}(\x20)\d{2}(\x20)\d{2}(\x20)\d{3}(\x20)\d{3} ((\x20)\d{2}|))|(\d\d{2}\d{2}\d{2}\d{3}\d{3}(\d{2}|)))$"

.

Númeroseguro social (EEUU)

"^\d{3}-\d{2}-\d{4}$"

.

Tarjeta de identificación (Francia)

"^([0-9a-zA-Z]{12})$"

Por ejemplo 001234567000

Tarjeta de identificación (Italia)

"^([0-9a-zA-Z]{12})$"

Por ejemplo AA 1234567

Número pasaporte (Francia)

"^([a-zA-Z]{2})\s([0-9]{7})$"

Por ejemplo 123456789

IBAN (Alemania)

"DE\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{2}|DE\d{20}"

.

IBAN (España)

"ES\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}|ES\d{22}"

.

Certificado de Identificación Fiscal (Italia)

"^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3} [A-Za-z]{1}$"

.

Certificado de Identificación Fiscal (España)

"^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7}(-|\.)? [0-9A-Z]|\d{8}(-|\.)?[A-Z])$"

.

Acerca del autor

Andy Gonzalez es International Program Manager en Microsoft. Es responsable por la calidad de las herramientas de desarrollo en Latinoamérica y España. Sus productos incluyen Visual Studio, Visual Studio Team System, .NET Framework y Visual Studio Tools for the Office System.

Mostrar:
© 2015 Microsoft