Sei sulla pagina 1di 5

Cadenas y Expresiones regulares (C Sharp)

Articulos C#

Introduccin
Las expresiones regulares son la buena manera de validar campos del texto tales como nombres, las direcciones, los nmeros de telfono, y otra informacin del usuario. Usted puede utilizarlas para obligar la entrada, aplicar reglas del formato, y mucho ms. Hay varios mtodos de cmo validar informacin. Este documento es una breve introduccin a la clase de System.Text.RegularExpressions.Regex y demuestra cmo usted puede utilizar expresiones regulares.

Clase Regex
La clase Regex representa una expresin regular de slo lectura. Contiene tambin mtodos estticos que permiten utilizar otras clases de expresiones regulares sin crear explcitamente instancias de objetos de las otras clases. En el siguiente ejemplo de cdigo se utiliza el mtodo Regex.IsMatch para comprobar si una cadena tiene el formato de correo electrnico vlido. El mtodo IsValidEmail devuelve el valor true si la cadena contiene una direccin de correo electrnico vlida; en caso contrario, devuelve false y no realiza ms acciones. Puede utilizar IsValidEmailpara filtrar las direcciones de correo electrnico que contienen caracteres no vlidos antes de que la aplicacin almacene las direcciones en una base de datos o las muestre en una pgina ASP.NET. 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}\.[09]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$") End Function

Ejemplos de expresiones regulares . Correo electrnico URL . .

"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9] Por {1,3}\.[0-9]{1,3}\.)|(( [a-zA-Z0-9\-]+\.)+))([a- ejemplo name@hotmail.c zA-Z]{2,4}|[0-9]{1,3})(\]?)$" om "^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA- Por Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\ ejemplo http://www.micro +&%\$#_]*)?$" soft.com "(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9] {8,10})$" Entre 8 y 10 caracteres, por lo menos un digito y un alfanumrico, y no puede contener caracteres espaciales Por ejemplo 01/01/2005

Contrasea segura

Fecha

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

. (EEUU) Fecha (EEUU) Moneda

"^\d{1,2}\/\d{1,2}\/\d{2,4}$" "^(-)?\d+(\.\d\d)?$"

Por ejemplo 01/01/2005 + o cantidad, sin ningn smbolo. Si tiene punto decimal, decimal, requiere 2 caracteres numricos despus del punto decimal Nmero tarjeta de crdito como Amex, Visa, MasterCard, Discover

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

Nmerotelefo "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})| . no (Francia) ((-[0-9]{2}){4})$" Nmerotelefo "^[0-9]{2,3}-? ?[0-9]{6,7}$" no (Espaa) Nmerotelefo "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" no (EEUU) Cdigo postal"^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$" (Francia) Codigo postal (Italia) Cdigo postal (Alemania) Cdigo postal (Espaa) Cdigo postal (EEUU) "^(V-|I-)?[0-9]{4}$" . . . .

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

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

Nmerosegur "^((\d(\x20)\d{2}(\x20)\d{2}(\x20)\d{2} o social (\x20)\d{3}(\x20)\d{3} ((\x20)\d{2}|))| (Francia) (\d\d{2}\d{2}\d{2}\d{3}\d{3}(\d{2}|)))$" Nmerosegur "^\d{3}-\d{2}-\d{4}$" o social (EEUU)

. Por ejemplo 001234567000 Por ejemplo AA 1234567

Tarjeta de "^([0-9a-zA-Z]{12})$" identificacin (Francia) Tarjeta de "^([0-9a-zA-Z]{12})$" identificacin (Italia) Nmero pasaporte (Francia) IBAN (Alemania) IBAN (Espaa) "^([a-zA-Z]{2})\s([0-9]{7})$"

Por ejemplo 123456789

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

. .

Certificado "^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A- . de Za-z]{1}[0-9]{3} [A-Za-z]{1}$" Identificacin Fiscal (Italia) Certificado "^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7} de (-|\.)? [0-9A-Z]|\d{8}(-|\.)?[A-Z])$" Identificacin Fiscal (Espaa)

Buscar cadenas mediante expresiones regulares (Gua de programacin de C#)


La clase System.Text.RegularExpressions.Regex se puede utilizar para buscar cadenas. Estas bsquedas pueden tener distinta complejidad, desde ser muy sencillas hasta hacer un gran uso de expresiones regulares. A continuacin se ofrecen dos ejemplos de bsqueda de cadenas con la clase Regex. Para obtener ms informacin, veaExpresiones regulares de .NET Framework.

Ejemplo
El cdigo siguiente es una aplicacin de consola que realiza una bsqueda simple de cadenas sin distincin entre maysculas y minsculas en una matriz. El mtodo estticoSystem.Text.RegularExpressions.Regex.IsMatch(System.String,System.String,System. Text.RegularExpressions.RegexOptions) realiza la bsqueda a partir de la cadena de bsqueda y de la cadena que contiene el patrn de bsqueda. En este caso, se utiliza un tercer argumento para indicar que no se debe distinguir entre maysculas y minsculas. Para obtener ms informacin, vea System.Text.RegularExpressions.RegexOptions. C#
class TestRegularExpressions

{ static void Main() { string[] sentences = { "cow over the moon", "Betsy the Cow", "cowering in the corner", "no match here" }; string sPattern = "cow"; foreach (string s in sentences) { System.Console.Write("{0,24}", s); if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { System.Console.WriteLine(" (match for '{0}' found)",sPattern); } else { System.Console.WriteLine(); } } } }

Resultados
cow over the moon Betsy the Cow cowering in the corner no match here (match for 'cow' found) (match for 'cow' found) (match for 'cow' found)

El cdigo siguiente es una aplicacin de consola que utiliza expresiones regulares para validar el formato de cada cadena de una matriz. La validacin requiere que cada cadena tenga la forma de un nmero de telfono en el que tres grupos de dgitos se separan por guiones. Los dos primeros grupos contienen tres dgitos, y el tercero, cuatro. Esto se logra con la expresin regular ^\\d{3}-\\d{3}-\\d{4}$. C#
class TestRegularExpressionValidation { static void Main() { string[] numbers = { "123-456-7890", "444-234-22450", "690-203-6578", "146-893-232",

"146-839-2322", "4007-295-1111", "407-295-1111", "407-2-5555", }; string sPattern = "^\\d{3}-\\d{3}-\\d{4}$"; foreach (string s in numbers) { System.Console.Write("{0,14}", s); if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern)) { System.Console.WriteLine(" - valid"); } else { System.Console.WriteLine(" - invalid"); } } } }

Resultados
123-456-7890 - valid 444-234-22450 - invalid 690-203-6578 - valid 146-893-232 - invalid 146-839-2322 - valid 4007-295-1111 - invalid 407-295-1111 - valid 407-2-5555 - invalid

Potrebbero piacerti anche