Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpRgCG 170 of 288 menu
◀ ▶

Группы символов в регулярках в Rust

Короткие записи с обратным слэшем обозначают частые классы символов. Класс цифры совпадает с одной латинской цифрой от нуля до девяти, класс слова - с буквой, цифрой или подчеркиванием в кодировке ASCII.

Русские буквы в эти классы не входят. Для кириллицы позже возьмем свойство Юникода, а пока проверим поведение на латинице:

use regex::Regex; fn main() { let digits = Regex::new(r"\d+").expect("bad pattern"); let words = Regex::new(r"\w+").expect("bad pattern"); let line = "id_12 end"; println!("{}", digits.replace_all(line, "#")); println!("{}", words.replace_all("a1 _b", "!")); }

Класс нецифры, небуквы и пробельного символа строят добавлением крышки перед буквой класса. Так удобно вырезать разделители:

use regex::Regex; fn main() { let re = Regex::new(r"\S+").expect("bad pattern"); let line = " hello world "; for part in re.find_iter(line) { println!("{}", part.as_str()); } }

Дана строка:

let line = "room 5 floor 12";

Замените каждое число из ASCII-цифр на "N".

Дана строка:

let line = "word1 word2";

Скажите, войдет ли символ подчеркивания в совпадение с классом слова и почему.

Дана строка:

let line = "a\tb\nc";

Подберите класс, который найдет каждый непробельный символ по отдельности.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить