Expresiones regulares en C#: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Expresiones regulares en C#: una herramienta poderosa para trabajar con texto



Las expresiones regulares (regex) son una herramienta indispensable para buscar, extraer y reemplazar datos de texto según un patrón determinado. En C# (.NET), el trabajo con expresiones regulares se implementa a través del potente espacio de nombres System.Text.RegularExpressions y la clase Regex. En este artículo, analizaremos las principales capacidades de las expresiones regulares en C# con ejemplos prácticos que le ayudarán a automatizar el procesamiento de cadenas.



Fundamentos de la clase Regex en C#



La clase principal para trabajar con expresiones regulares en C# es System.Text.RegularExpressions.Regex. Proporciona métodos estáticos y de instancia para realizar operaciones de búsqueda, reemplazo y división de cadenas.



Creación de un objeto Regex



Puede crear una instancia de la clase Regex pasando al constructor un patrón y, opcionalmente, banderas:



using System.Text.RegularExpressions;

// Creación simpleRegex regex = new Regex(@"\\d+");

// Con banderas (por ejemplo, ignorar mayúsculas/minúsculas)Regex regexIgnoreCase = new Regex(@"hello", RegexOptions.IgnoreCase);


Importante: En C#, se recomienda usar cadenas literales (con el prefijo @) para escribir patrones. Esto evita tener que escapar las barras invertidas, haciendo el código más legible.



Métodos estáticos de Regex



Para operaciones únicas, es más conveniente usar métodos estáticos que no requieren crear una instancia de la clase:



bool isMatch = Regex.IsMatch("¡Hola, mundo!", @"mundo");Console.WriteLine(isMatch); // True

string result = Regex.Replace("123abc456", @"\\d+", "X");Console.WriteLine(result); // XabcX


Métodos principales para trabajar con texto



La clase Regex proporciona cuatro métodos clave: IsMatch, Match, Matches y Split. Veamos cada uno con ejemplos.



Método IsMatch — verificación de coincidencia



El método IsMatch devuelve un bool que indica si se encontró al menos una coincidencia con el patrón en la cadena.



string email = "user@example.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}$";

if (Regex.IsMatch(email, pattern)){ Console.WriteLine("Email correcto");}else{ Console.WriteLine("Email incorrecto");}


Este ejemplo verifica si la cadena coincide con un patrón simple de dirección de email.



Métodos Match y Matches — búsqueda de coincidencias



Match devuelve la primera coincidencia, mientras que Matches devuelve una colección de todas las coincidencias como un objeto MatchCollection.



string text = "Precio: 1500 rub. Descuento: 200 rub. Total: 1300 rub.";string pattern = @"\\d+";

// Primera coincidenciaMatch firstMatch = Regex.Match(text, pattern);Console.WriteLine($"Primer número: {firstMatch.Value}"); // 1500

// Todas las coincidenciasMatchCollection allMatches = Regex.Matches(text, pattern);Console.WriteLine("Todos los números:");foreach (Match match in allMatches){ Console.WriteLine($" - {match.Value}"); // 1500, 200, 1300}


El objeto Match contiene no solo el valor (Value), sino también la posición en la cadena (Index) y la longitud (Length).



Método Split — división de cadenas



Regex.Split divide una cadena en una matriz de subcadenas según un patrón especificado. Es análogo a String.Split, pero con soporte para expresiones regulares.



string data = "Iván;25;Moscú;programador";string pattern = @";";

string[] parts = Regex.Split(data, pattern);foreach (string part in parts){ Console.WriteLine(part);}// Salida:// Iván// 25// Moscú// programador


Agrupación y captura de datos



Una de las características más potentes

Blogs

Book Recommendations