Операторы повторения в регулярках в Rust
Плюс, звезда и вопрос стоят сразу после куска шаблона и говорят, сколько раз его можно повторить. Плюс требует хотя бы одно повторение, звезда допускает ноль, вопрос - ноль или одно.
Создайте проект Cargo и из его корня выполните команду добавления зависимости:
cargo add regex
Строка с именем крейта появится в секции зависимостей файла описания. Версию подберет сама команда, вручную число версии здесь не указываем.
В точке входа подключите крейт и соберите шаблон с повторением через плюс:
use regex::Regex;
fn main() {
let re = Regex::new(r"xa+x").expect("bad pattern");
let out = re.replace_all("xx xax xaax xaaax xbx", "!");
println!("{}", out);
}
Замена затронет фрагменты, где между
буквами "x" идет одна или несколько
"a". Со звездочкой вместо плюса
подойдет и пара "x" без "a"
между ними:
use regex::Regex;
fn main() {
let re = Regex::new(r"xa*x").expect("bad pattern");
let out = re.replace_all("xx xax xaax xaaax xbx", "!");
println!("{}", out);
}
Дана строка:
let line = "ab bb bbb a";
Составьте шаблон с плюсом так, чтобы заменить каждую группу буквы "b" длиной от двух символов на "*", и выведите результат.
Дана строка:
let line = "ax a ax aa";
Подберите шаблон со звездой, который заменит только "ax" и "aax" на восклицательный знак, не трогая одиночную "a" перед пробелом.
Дана строка:
let line = "color colour";
С помощью вопроса после "u" найдите оба написания слова про оттенок и замените их на "paint".