Expresiones regulares en C#: Guía práctica
Una expresión regular (regex) es un patrón que se puede comparar con un texto de entrada. El framework .Net proporciona un motor de expresiones regulares para dicha coincidencia. Un patrón consiste en uno o más literales de caracteres, operadores o constructos.
Constructos para definir expresiones regulares
Hay varias categorías de caracteres, operadores y constructos:
- Escapes de caracteres
- Clases de caracteres
- Anclas
- Constructos de agrupación
- Cuantificadores
- Constructos de retroreferencia
- Constructos de alternancia
- Sustituciones
- Constructos misceláneos
La clase Regex
La clase Regex representa una expresión regular. Métodos comúnmente usados:
| Nº | Método y descripción |
|---|---|
| 1 | IsMatch(input): Indica si la regex encuentra coincidencia en la cadena de entrada. |
| 2 | IsMatch(input, startat): Indica coincidencia comenzando en la posición especificada. |
| 3 | IsMatch(input, pattern) (estático): Indica si la regex especificada encuentra coincidencia. |
| 4 | Matches(input): Busca todas las ocurrencias de una regex en la cadena. |
| 5 | Replace(input, replacement): Reemplaza todas las cadenas que coinciden con el patrón por la cadena de reemplazo. |
| 6 | Split(input): Divide una cadena en un array de subcadenas en posiciones definidas por el patrón regex. |
Para la lista completa, consulte la documentación de Microsoft sobre C#.
Ejemplo 1: Palabras que empiezan con 'S'
using System;
using System.Text.RegularExpressions;
namespace AplicaciónRegEx {
class Program {
private static void MostrarCoincidencia(string texto, string expr) {
Console.WriteLine("La expresión: " + expr);
MatchCollection mc = Regex.Matches(texto, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "A Thousand Splendid Suns";
Console.WriteLine("Palabras que empiezan con 'S':");
MostrarCoincidencia(str, @"\bS\S*");
Console.ReadKey();
}
}
}
Resultado:
Palabras que empiezan con 'S':
La expresión: \bS\S*
Splendid
Suns
Ejemplo 2: Palabras que empiezan con 'm' y terminan en 'e'
using System;
using System.Text.RegularExpressions;
namespace AplicaciónRegEx {
class Program {
private static void MostrarCoincidencia(string texto, string expr) {
Console.WriteLine("La expresión: " + expr);
MatchCollection mc = Regex.Matches(texto, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "make maze and manage to measure it";
Console.WriteLine("Palabras que empiezan con 'm' y terminan en 'e':");
MostrarCoincidencia(str, @"\bm\S*e\b");
Console.ReadKey();
}
}
}
Resultado:
Palabras que empiezan con 'm' y terminan en 'e':
La expresión: \bm\S*e\b
make
maze
manage
measure
Ejemplo 3: Reemplazar espacios en blanco extra
using System;
using System.Text.RegularExpressions;
namespace AplicaciónRegEx {
class Program {
static void Main(string[] args) {
string input = "Hello World ";
string pattern = @"\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Cadena original: {0}", input);
Console.WriteLine("Cadena reemplazo: {0}", result);
Console.ReadKey();
}
}
}
Resultado:
Cadena original: Hello World
Cadena reemplazo: Hello World
Lenguaje C
- Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
- Dominando strings en C#: Fundamentos, operaciones y técnicas avanzadas
- Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos
- Cadenas en C hechas fáciles: Declaración, entrada, salida y funciones de biblioteca
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Entender Expresiones, Sentencias y Bloques en Java
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando representaciones String en Enums de Java
- Dominando Expresiones Lambda en Java: Desde Básicos hasta Stream API
- Clase String en Java: Dominando Creación y Manipulación de Cadenas
- Expresiones Regulares en Java: Dominando la Coincidencia de Patrones con java.util.regex