Usando expresiones regulares

Rust:
Usando expresiones regulares

Cómo hacerlo:

La biblioteca regex de Rust es la opción predilecta para trabajar con expresiones regulares. Para usarla, primero necesitarás añadirla a tu Cargo.toml:

[dependencies]
regex = "1"

Luego, puedes comenzar a implementar funcionalidades de regex en tu código Rust. Así es como se realizan algunas operaciones comunes:

Coincidir un Patrón en una Cadena

use regex::Regex;

fn main() {
    let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
    let fecha = "2023-04-15";

    println!("¿El texto coincide con el patrón de fecha? {}", re.is_match(fecha));
    // Salida: ¿El texto coincide con el patrón de fecha? true
}

Encontrar y Acceder a Coincidencias

use regex::Regex;

fn main() {
    let texto = "Rust 2023, C++ 2022, Python 2021";
    let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();

    for cap in re.captures_iter(texto) {
        println!("Lenguaje: {}, Año: {}", &cap[1], &cap[2]);
    }
    // Salida:
    // Lenguaje: Rust, Año: 2023
    // Lenguaje: C++, Año: 2022
    // Lenguaje: Python, Año: 2021
}

Reemplazar Texto

use regex::Regex;

fn main() {
    let re = Regex::new(r"\b(\w+)\s(\d{4})").unwrap();
    let texto = "Rust 2023, C++ 2022, Python 2021";
    let reemplazado = re.replace_all(texto, "$1 fue actualizado en $2");

    println!("Texto actualizado: {}", reemplazado);
    // Salida: Texto actualizado: Rust fue actualizado en 2023, C++ fue actualizado en 2022, Python fue actualizado en 2021
}

Dividir Texto Usando un Regex

use regex::Regex;

fn main() {
    let re = Regex::new(r"\W+").unwrap(); // dividir en cualquier carácter que no sea de palabra
    let texto = "Rust-C++-Python-Go";

    let campos: Vec<&str> = re.split(texto).collect();

    for campo in campos {
        println!("Lenguaje: {}", campo);
    }
    // Salida:
    // Lenguaje: Rust
    // Lenguaje: C++
    // Lenguaje: Python
    // Lenguaje: Go
}

Estos ejemplos proporcionan una guía básica para comenzar con las expresiones regulares en Rust. A medida que tus necesidades se vuelvan más sofisticadas, el ‘crate’ regex ofrece una gran cantidad de funcionalidades para tareas complejas de coincidencia de patrones y manipulación de texto.