Rust:
Eliminando caracteres que coinciden con un patrón
Cómo hacerlo:
fn main() {
let texto = "¡Hola, Crusty_Cangrejo_123!";
let patron = ['_', '!', '1', '2', '3'];
let resultado = eliminar_caracteres(&texto, &paton);
println!("Texto limpio: {}", resultado);
}
fn eliminar_caracteres(texto: &str, caracteres_a_eliminar: &[char]) -> String {
texto.chars()
.filter(|c| !caracteres_a_eliminar.contains(c))
.collect()
}
// Resultado:
// Texto limpio: Hola, CrustyCangrejo
Deep Dive:
Eliminar caracteres según un patrón no es nada nuevo, viene de mucho antes de que Rust apareciera en el panorama de programación. En lenguajes como Perl o Python, operaciones como estas son pan de cada día gracias a sus poderosas expresiones regulares. Rust ofrece una extra capa de seguridad en el manejo de memoria al realizar estas operaciones, evitando errores comunes en otros lenguajes.
Alternativas para eliminación de caracteres incluyen el uso de expresiones regulares con la crate regex
para patrones más complejos o implementando tu propia lógica como mostramos arriba, que puede ser más simple y con mejor rendimiento en escenarios sencillos.
El detalle de implementación importante aquí es que chars()
retorna un iterador sobre los caracteres Unicode del string, no solo los bytes, lo que hace que nuestro código maneje correctamente texto en varios idiomas y símbolos especiales.
Ver también:
- Documentación oficial de Rust
std::string::String
- Guide to Rust Strings &
.chars()
iterator