Кириллица в регулярных выражениях в Rust
Класс слова в этом крейте не включает
кириллицу. Русский текст ищут через
свойства Юникода в фигурных скобках
после обратного слэша и буквы p.
Запись для блока кириллицы позволяет собрать слово из русских букв так же, как латинское слово из класса слова:
use regex::Regex;
fn main() {
let re = Regex::new(r"\p{Cyrillic}+").expect("bad pattern");
let line = "hello мир world";
println!("{}", re.replace_all(line, "!"));
}
Можно сузить набор до строчных или прописных букв блока, если рядом с именем свойства указать модификатор:
use regex::Regex;
fn main() {
let re = Regex::new(r"\p{Cyrillic}{3}").expect("bad pattern");
let line = "дом домик";
if re.is_match(line) {
println!("found");
}
}
Дана строка:
let line = "Rust и мир";
Замените каждое русское слово на
"RU", не трогая латиницу.
Дана строка:
let line = "abc123";
Объясните, почему шаблон с классом слова не подходит для проверки, что строка целиком на кириллице.