El documento describe el uso de expresiones regulares para validar datos. Explica que las expresiones regulares permiten buscar patrones en cadenas de texto de forma concisa y flexible. Luego proporciona ejemplos de expresiones regulares para validar campos como nombres, números, correos electrónicos, entre otros. Finalmente, muestra cómo implementar la validación con expresiones regulares en VB.NET.
2. Validación de Datos
Una definición…
En informática, una expresión regular, también llamada “regex” o
“regexp”, ofrece una forma concisa y flexible de buscar cadenas de
texto, como símbolos, palabras o ciertos patrones de símbolos. Una
expresión regular está escrita en un lenguaje formal que puede ser
interpretado por un procesador de expresiones común.
Documentación de Visual Studio .NET
3. Validación de Datos
Expresiones Regulares
Son expresiones “comodín” realmente ingeniosas para
buscar y analizar cadenas de texto
La notación extensiva de búsqueda de patrones coincidentes de las
expresiones regulares permite analizar rápidamente grandes cantidades de
texto para buscar patrones de caracteres específicos; para validar un texto
con el fin de asegurar que se corresponde con un patrón predefinido (por
ejemplo, una dirección de correo electrónico); para extraer, editar, reemplazar
o eliminar subcadenas de texto; y para agregar las cadenas extraídas a una
colección con el fin de generar un informe.
Documentación de Visual Studio .NET
4. Las Regex
• Muy poderosas y bastante crípticas
• Divertidas, una vez las entiendes
• Las expresiones regulares son un lenguaje por si mimas
• Un lenguaje de “marker characters” – programación con
símbolos
• Es una especie de lenguaje de la “vieja escuela” - compacto
Validación de Datos
5. Guía rápida de Expresiones Regulares
^ Busca el inicio de una línea
$ Busca el final de una línea
. Busca cualquier carácter
s Busca espacios en blanco
S Busca cualquier carácter que no esté en blanco
* Repite un caracter cero o más veces
*? Repite un caracter cero o más veces (non-greedy) (No codicioso)
+ Repite un caracter una o más veces
+? Repite un caracter una o más veces (non-greedy) (No codicioso)
[aeiou] Busca un solo carácter en una lista
[^XYZ] Busca un solo carácter que no esté en la lista
[a-z0-9] El conjunto de caracteres puede incluir un rango
( Indica dónde empieza la extracción de la cadena
) Indica dónde acaba la extracción de la cadena
Validación de Datos
6. Empecemos a conocer las Regex
• El punto busca cualquier símbolo
• Si se añade el símbolo del asterisco, este estará repetido
“cualquier numero de veces”
Validación de Datos
El carácter comodín
^X.*:
7. X-Sieve: CMU Sieve 2.3
X-DSPAM-Result: Innocent
X-DSPAM-Confidence: 0.8475
X-Content-Type-Message-Body: text/plain
Validación de Datos
El carácter comodín
^X.*:
Busca el inicio de una linea
Cualquier caracter
Varias veces
8. Leemos de un campo lo siguiente:
Juancito01234
Validación de Datos
Caracteres y números
[0-9]+
Cualquier digito del 0 al 9
Una o varias veces
01234
9. Leemos de un campo lo siguiente:
Juancito01234
Validación de Datos
Caracteres y números
[a-z]+
Cualquier character de la ‘a’ a la ‘z’
Una o varias veces
uancito
10. Leemos de un campo lo siguiente:
Juancito01234
Validación de Datos
Caracteres y números
[A-Za-z]+
Cualquier character de la ‘A’ a la ‘Z’ y de la ‘a’ a la ‘z’
Una o varias veces
Juancito
11. Leemos del un cuadro de texto lo siguiente:
Tengo un auto feo, pero no me importa porque
mi matricula es AAA1234
Validación de Datos
Controlar una matricula
[A-Za-z]{3}[0-9]{4}
Cantas veces
AAA1234
12. Leemos del un cuadro de texto lo siguiente:
From: fgonzalez@dominio.com TO: algun fulano
Validación de Datos
Buscamos un correo
S+@S+
No espacios en blanco continuos
fgonzalez@dominio.com
13. Leemos del un cuadro de texto lo siguiente:
From: fgonzalez@dominio.com TO: algun fulano
Message: Scooby Doo! Where are you?
Validación de Datos
Los Paréntesis (Extracción)
From.*@([^ ]*).
Un character que no sea un espacio
dominio
Muchos de esos
Comienza la extracción Fin de la extracción
Hasta el “.”
14. A probar nuestras exresiones
• Descargar el archivo Texto.txt de: https://goo.gl/oznTZn,
luego copiar el contenido dentro de http://regex101.com
• Formato: Nombre,Edad,telefono,Empresa
• Buscar el nombre de la persona que trabaje en: Donec Ltd
• Buscar a la persona que tiene un telefono de: 8 dígitos
• Buscar aquella persona que tenga un correo y encontrar su
dominio
Validación de Datos
15. Utilizar Regex en VB .Net
• Para utilizar las expresiones regulares en VB .Net debemos importar
la biblioteca (que nos permita trabajar con ellos)
Validación de Datos
Imports System.Text.RegularExpressions
• Luego guardamos en alguna variable de validación, el patrón que se
debe controlar:
Dim edadValid As String = "^[0-9]{1,3}$"
16. Utilizar Regex en VB .Net
• Ahora podemos utilizar los distintos métodos de la clase Regex
Validación de Datos
Regex.IsMatch(Valor_a_validar, patrón_validador, opción)
• Podemos utilizar la siguiente opción para que no distinga de
mayúsculas y minúsculas
RegexOption.IgnoreCase
17. Otros métodos interesantes
• Esta clase tiene muchos métodos interesantes como:
Validación de Datos
Regex.Repace(Valor_a_reemplazar, Reemplazo), por ejemplo:
Dim rx As New Regex(“/S")
Dim input As String = “Texto de prueba”
Dim replaceText As String = “-”
Dim result As String = rx.Replace(input, repaceText)
19. Manos a la obra
Validación de Datos
Ahora debemos validar los siguientes datos
Marca : String de no mas de 5 letras
Modelo: String con al menos 1 numero
Año: Int de hasta 4 dígitos
Matricula: String alfanumérico con 3 letra y 4 dígitos
N° Motor: String alfanumerico con no menos de 10 dígitos
Fecha de ingreso: Date del formato dd/mm/aaaa
CI del empleado: int de 8 dígitos