Команда или в регулярках в Rust
Вертикальная черта в шаблоне задает выбор: подходит левый кусок или правый. Приоритет низкий, поэтому длинные варианты лучше брать в скобки.
Замена по такому шаблону затронет любой из перечисленных фрагментов:
use regex::Regex;
fn main() {
let re = Regex::new(r"cat|dog").expect("bad pattern");
let line = "cat and dog";
println!("{}", re.replace_all(line, "pet"));
}
Скобки помогают применить повтор или границу ко всему варианту сразу:
use regex::Regex;
fn main() {
let re = Regex::new(r"\b(red|green|blue)\b").expect("bad pattern");
let line = "redish green blue";
println!("{}", re.replace_all(line, "color"));
}
Дана строка:
let line = "yes no maybe";
Замените "yes" и "no" на
"ok", не трогая "maybe".
Дана строка:
let line = "http https ftp";
Найдите слова "http" или
"https" и замените на "web".
Скажите, зачем в шаблоне (a|b)+ нужны скобки вокруг альтернативы.