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

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#: fundamentos del trabajo con la clase Regex

Las expresiones regulares (regex) son una herramienta poderosa para buscar, extraer, reemplazar y validar cadenas según un patrón determinado. En C# (.NET), todo el trabajo con expresiones regulares se centraliza en el espacio de nombres System.Text.RegularExpressions y la clase central Regex. En este artículo, analizaremos las capacidades básicas y avanzadas de las expresiones regulares en C# con ejemplos prácticos.



1. Clase Regex: métodos principales y creación de patrones

Para trabajar con expresiones regulares en C#, debe incluir el espacio de nombres:

using System.Text.RegularExpressions;

La clase Regex proporciona varios métodos clave:

  • IsMatch — verifica si la cadena contiene una coincidencia con el patrón.
  • Match — devuelve la primera coincidencia.
  • Matches — devuelve todas las coincidencias.
  • Replace — reemplaza las coincidencias encontradas con la cadena especificada.
  • Split — divide la cadena según las coincidencias.

Un ejemplo simple de validación de dirección de correo electrónico:

string email = "user@example.com";string pattern = @"^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$";bool isValid = Regex.IsMatch(email, pattern);Console.WriteLine(isValid); // True

Observe el símbolo @ antes de la cadena: es una cadena verbatim (verbatim string), que simplifica la escritura de barras invertidas (\\) en los patrones.



2. Búsqueda y extracción de datos: métodos Match y Matches

El método Match devuelve un objeto Match que contiene información sobre la primera coincidencia. Si no hay coincidencias, la propiedad Success será false.

Ejemplo de extracción de un número de teléfono de un texto:

string text = "Llame al +7 (123) 456-78-90 o al +7 (987) 654-32-10";string pattern = @"\\+7\\s?\\(\\d{3}\\)\\s?\\d{3}-\\d{2}-\\d{2}";MatchCollection matches = Regex.Matches(text, pattern);

foreach (Match match in matches){ Console.WriteLine(match.Value);}// Salida:// +7 (123) 456-78-90// +7 (987) 654-32-10

El método Matches devuelve una colección de todas las coincidencias. También puede usar grupos de captura para extraer partes individuales:

string text = "ID: 12345, Precio: 999.99";string pattern = @"Precio:\\s*(\\d+\\.?\\d*)";Match match = Regex.Match(text, pattern);

if (match.Success){ string price = match.Groups[1].Value; Console.WriteLine($"Precio: {price}"); // Precio: 999.99}

Los grupos de captura se indican con paréntesis () en el patrón. El grupo cero es toda la coincidencia, y los grupos del 1 al N son las subcadenas capturadas.



3. Reemplazo y división de cadenas: Replace y Split

El método Replace permite reemplazar coincidencias de manera flexible. Admite referencias inversas ($1, $2, etc.) para insertar grupos capturados.

Ejemplo de formato de fecha de "YYYY-MM-DD" a "DD.MM.YYYY":

string date = "2025-03-15";string pattern = @"(\\d{4})-(\\d{2})-(\\d{2})";string replacement = "$3.$2.$1";string result = Regex.Replace(date, pattern, replacement);Console.WriteLine(result); // 15.03.2025

El método Split divide una cadena según las coincidencias con el patrón. Esto es útil para analizar archivos CSV o registros:

string data = "apple;banana;cherry;grape";string pattern = @";";string[] fruits = Regex.Split(data, pattern);foreach (var fruit in fruits){    Console.WriteLine(fruit);}// Salida:// apple// banana// cherry// grape

También puede usar delimitadores más complejos, como varios espacios o signos de puntuación:

string text = "uno   dos,tres;cuatro";string[] parts = Regex.Split(

Blogs

Book Recommendations