Флаги шаблона в регулярных выражениях в Rust
Флаг (?i) в начале шаблона включает
поиск без учета регистра для всего
выражения. Буквы в разном регистре
совпадают одинаково.
Тот же режим задают через сборщик
шаблона и поле case_insensitive:
use regex::RegexBuilder;
fn main() {
let re = RegexBuilder::new(r"rust")
.case_insensitive(true)
.build()
.expect("bad pattern");
let line = "Rust RUST rust";
println!("{}", re.replace_all(line, "!"));
}
Флаг (?m) включает многострочные
края для крышки и доллара. Его дублирует
поле multi_line у сборщика:
use regex::Regex;
fn main() {
let re = Regex::new(r"(?im)^word").expect("bad pattern");
let text = "word\nother\nword";
for m in re.find_iter(text) {
println!("{}", m.as_str());
}
}
Дана строка:
let line = "Code CODE code";
Замените каждое слово "code"
на "*" без учета регистра.
Дана строка:
let text = "hi\nHI\nhi";
С флагом без учета регистра найдите
строки, которые начинаются с "hi",
в многострочном тексте.