Documente Academic
Documente Profesional
Documente Cultură
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
"^([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}$"
"^\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
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}$" . . . .
"^(\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)
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})$"
"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)
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