Expresiones Regulares en .NET C#
Las expresiones regulares (para los amigos regex) son una herramienta muy potente en el mundo del desarrollo, están presentes en la mayoría de los lenguajes modernos e incluso en comandos clásicos como grep y find.
Como no, en .NET, disponemos de un package dedicado a las expresiones regulares, lo podemos “importar” desde System.Text.RegularExpressions.
Validación (match)
Es una de la tareas más fundamentales en cualquier sistema, consiste en validar si un dato (String) valida respecto a cierto patrón, ejemplo, si representa a un número de teléfono, e-mail, etc.
El siguiente ejemplo, valida los elementos del arreglo contra el patrón fecha y email (pt_email), usando Regex.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace ExampleRegularExpression { class Program { static void Main(string[] args) { String[] inputs = { "2012/05/30", "info@deerme.org","I am little string" }; Regex rgdate = new Regex("^\\d{4}/\\d{2}/\\d{2}"); Regex rgemail = new Regex("^[\\w-.]+@([\\w-]{2,}\\.)*([\\w-]{2,}\\.)[\\w-]{2,4}$"); foreach (String data in inputs) { // Date if (rgdate.IsMatch(data)) { Console.WriteLine("The string '"+ data +"' is a date valid"); } // Email if (rgemail.IsMatch(data)) { Console.WriteLine("The string '" + data + "' is a email valid"); } } Console.ReadKey(); } } }
Extraer (extract)
La extración de datos es otra tarea muy común de resolver a través de las expresiones regulares. Vamos a realizar un pequeño ejemplo que extrae el valor de la UF (Unidad de Fomento en Chile) y el dólar observado desde el sitio web www.df.cl (diario financiero).
… Actualizando el árticulo …
necesito la terminacion de este articulo!!! xd
Está bueno, vamos que si lo completas fijo lo agrego a mi lista de favoritos!
Saludos!
Estimado muchas gracias por el artículo. Esto mismo lo puedo aplicar a un proyecto sqlserver en .net?? Lo que quiero es extraer la numeración de las direcciones postales de una base de datos.
Hola Patricio
En teoría podrías extraer las direcciones con queries y TSQL directamente en tu DB. Tambien podrias crear una aplicación en .NET que se conecte a tu DB y luego extraer los datos necesarios o usar un ETL para la extración de datos en base a Script Component o otros elementos en un proyecto Integration Services Project (en SQL Server Business Intelligence Development Studio).
Lo importante es que analices el tiempo que te puede tomar extraer esos datos y que tome las decisión más acorde.
Saludos