Regex en Rust: guía completa con ejemplos prácticos

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

Biblioteca regex para Rust: guía completa

1. ¿Qué es y para qué sirve?

La biblioteca regex es la herramienta estándar y más popular para trabajar con expresiones regulares en el lenguaje Rust. Proporciona un motor potente, seguro y de alto rendimiento para buscar, extraer y reemplazar texto mediante patrones. A diferencia de muchas otras implementaciones, regex en Rust está diseñada con énfasis en la seguridad de memoria (memory safety) y la ausencia de comportamiento indefinido (undefined behavior), algo crítico para la programación de sistemas.

¿Para qué sirve? Las expresiones regulares son un lenguaje universal para describir patrones de texto. Con ellas puedes resolver una gran variedad de tareas: validación de correos electrónicos y URL, análisis de logs, extracción de datos de HTML/JSON, búsqueda y reemplazo en código, procesamiento de entrada de usuario y mucho más. La biblioteca regex lo hace de forma rápida y confiable. Utiliza un algoritmo basado en autómatas (Thompson NFA) que garantiza un tiempo de ejecución lineal respecto a la longitud de la cadena de entrada, protegiendo contra el "retroceso catastrófico" (catastrophic backtracking) común en otros motores (como PCRE o el re de Python).

Características clave de la biblioteca: soporte completo de la sintaxis de expresiones regulares (anclas, cuantificadores, grupos, lookahead/lookbehind, Unicode), trabajo con secuencias de bytes arbitrarias, posibilidad de compilar la expresión una vez y reutilizarla múltiples veces, y soporte para iteradores que permiten encontrar todas las coincidencias. La biblioteca forma parte del ecosistema de Rust y cuenta con un mantenimiento activo por parte de la comunidad.

2. Instalación

Para instalar la biblioteca regex se utiliza el gestor de paquetes cargo, incluido en Rust. Debes agregar la dependencia al archivo Cargo.toml de tu proyecto.

Comando exacto para agregarla desde la terminal:

cargo add regex

O agrégala manualmente en la sección [dependencies] del archivo Cargo.toml:

[dependencies]
regex = "1"

Después, ejecuta cargo build para descargar y compilar la biblioteca. La versión "1" indica que se usará la última versión estable de la serie 1.x.

3. Inicio rápido — ejemplo mínimo funcional

Escribamos un programa sencillo que verifique si una cadena contiene la palabra "hello" (sin distinción de mayúsculas/minúsculas).

use regex::Regex;

fn main() {
    // Compilamos la expresión regular
    // (?i) — bandera que desactiva la sensibilidad a mayúsculas/minúsculas
    let re = Regex::new(r"(?i)hello").unwrap();

    // Cadena donde buscar
    let text = "Hello, world!";

    // Verificamos si hay coincidencia
    if re.is_match(text) {
        println!("¡Coincidencia encontrada!");
    } else {
        println!("No hay coincidencias.");
    }
}

Este código mostrará: ¡Coincidencia encontrada!. Observa el uso de .unwrap() — aquí se usa por simplicidad, pero en código real debes manejar los errores de compilación de la expresión regular (por ejemplo, si el patrón es inválido).

4. Métodos principales

A continuación se enumeran los métodos y funciones clave de la biblioteca regex. Todos los ejemplos asumen que tienes el importe use regex::Regex;.

4.1. Regex::new(pattern: &str) -> Result<Regex, Error>

Qué hace: Compila la cadena pattern en una expresión regular. Devuelve un Result que debes manejar en caso de error de sintaxis.

let re = Regex::new(r"^\d{3}-\d{2}-\d{4}$").expect("Regex inválido");
// re ya está listo para usar

4.2. is_match(&self, text: &str) -> bool

Qué hace: Verifica si hay

Recommendations