Удаление символов, соответствующих шаблону

Rust:
Удаление символов, соответствующих шаблону

Как:

В Rust мы можем использовать метод replace из типа String или регулярные выражения для более сложных шаблонов. Вот как это делается:

fn main() {
    let phrase = "Hello, _world_! -- Programming in Rust --".to_string();
    // Замена подчеркиваний на пустое место
    let cleaned = phrase.replace("_", "");
    println!("{}", cleaned);

    // Использование регулярных выражений для более сложных шаблонов (не забудьте добавить crate regex в Cargo.toml)
    let regex = regex::Regex::new(r"--.*?--").unwrap();
    let s = regex.replace_all(&cleaned, "");
    println!("{}", s);
}

// Вывод:
// Hello, world! -- Programming in Rust --
// Hello, world!

Погружение

Удаление символов, соответствующих определенному шаблону, не уникально для Rust; это общая операция во многих языках программирования. Исторически, инструменты вроде sed в Unix использовались для мощного преобразования текста, и теперь языки предоставляют встроенные функции для манипуляций со строками.

В Rust стандартный подход заключается в использовании replace для простых фиксированных шаблонов. Для подстановочных знаков, повторений или условного удаления мы обращаемся к регулярным выражениям. Crate regex является фактически стандартным инструментом для этого, но помните, что операции с регулярными выражениями более затратны с точки зрения производительности, поэтому используйте их осмотрительно.

Гарантии безопасности Rust распространяются и на обработку текста. В то время как в некоторых языках манипуляции со строками могут стать источником уязвимостей безопасности, таких как переполнение буфера, дизайн Rust защищает от подобных проблем.

Смотрите также