Группы символов внутри наборов в Rust
Внутри набора можно использовать короткие классы вроде цифры, слова или пробела. Они ведут себя как один элемент списка и сокращают запись длинных перечислений.
Набор из класса цифры и нескольких букв найдет один символ, который либо цифра ASCII, либо одна из указанных букв:
use regex::Regex;
fn main() {
let re = Regex::new(r"[\dA-F]+").expect("bad pattern");
let line = "color FF00 zz";
println!("{}", re.replace_all(line, "*"));
}
Класс слова внутри набора не превращает весь набор в одно слово: каждый символ совпадения по-прежнему проверяется отдельно:
use regex::Regex;
fn main() {
let re = Regex::new(r"[\w-]+").expect("bad pattern");
let line = "token-1 bad token";
if let Some(m) = re.find(line) {
println!("{}", m.as_str());
}
}
Дана строка:
let line = "v1 v2 x3";
Найдите фрагменты из буквы "v"
и цифры и замените на "id".
Дана строка:
let line = "A1 B2 C3";
Подберите набор с классом цифры и
заглавной латинской буквой для поиска
пар "A1" и "B2".