Introducción a Expresiones Regulares

Introducción

Las expresiones regulares (#RegExp) son la forma correcta de validar campos de texto tales como nombres, direcciones, números de teléfono, etcétera. Pueden usarse para obligar la entrada, aplicar reglas de 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 muestra cómo 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

Ejemplos de expresiones regulares

Uso Expresión Ejemplo
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 [email protected]
URL "^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])* (:(0-9)*)*(\/?)( [a-zA-Z0--\.\?\,\'\/\\\+&%\$#_]*)?$" Por ejemplo http://www.microsoft.com
Contraseña segura (mas o menos) "(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$" Entre 8 y 10 caracteres, por lo menos un dígito y un alfanumérico, y no puede contener caracteres especiales
Fecha (EEUU) "^\d{1,2}\/\d{1,2}\/\d{2,4}$" Por ejemplo 01/01/2005
Moneda – valor monetario "^(-)?\d+(\.\d\d)?$" + o – cantidad, sin ningún símbolo. Si tiene punto decimal, requiere 2 caracteres numéricos después del punto decimal
Número de tarjeta 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úmero de teléfono (Francia) "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$"  
Número de teléfono (España) ""^[0-9]{2,3}-? ?[0-9]{6,7}$"  
Número de teléfono (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}$"  
Código 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úmero seguridad 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úmero seguridad 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 AR 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}" Por ejemplo DE1201220666990123456789
IBAN (España) "ES\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}|ES\d{22}" Por ejemplo ES1201220666990123456789
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])$"  

. . .

Esta entrada fue publicada en Empezando en, Formacion y etiquetada , . Guarda el enlace permanente.

2 respuestas a Introducción a Expresiones Regulares

  1. miguel1949 dijo:

    La lista de ejemplos, terriblemente util para gente como yo que siempre se nos han atravesado un poco las expresiones regulares.
    Gracias Henry

Deja un comentario