Использование регулярных выражений

Rust:
Использование регулярных выражений

Как это сделать:

Rust использует крейт regex для операций с регулярными выражениями. Сначала добавьте его в ваш Cargo.toml:

[dependencies]
regex = "1"

Затем вы можете сопоставлять строки следующим образом:

use regex::Regex;

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

    println!("Соответствует ли текст шаблону даты? {}", re.is_match(date));
}

Вывод:

Соответствует ли текст шаблону даты? true

Для захвата групп:

use regex::Regex;

fn main() {
    let re = Regex::new(r"(\w+)@(\w+)\.(\w+)").unwrap();
    let email = "[email protected]";

    match re.captures(email) {
        Some(caps) => {
            println!("Пользователь: {}, Домен: {}, Расширение: {}", &caps[1], &caps[2], &caps[3]);
        }
        None => println!("Совпадений не найдено."),
    }
}

Вывод:

Пользователь: user, Домен: example, Расширение: com

Глубокое погружение

Регулярные выражения существуют с 1950-х годов, имея корни в теории автоматов и формальных языков. Модуль regex в Rust создан для скорости и безопасности, сосредотачивая внимание на компиляции эффективных шаблонов регулярных выражений во время выполнения. Альтернативы regex включают в себя строковые функции, такие как find, split, и replace, которые покрывают более простые случаи использования без шаблонов. Регулярные выражения в Rust особенно эффективны благодаря обширной оптимизации и компиляции шаблонов регулярных выражений.

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