Фигурные скобки в регулярках в Rust
Фигурные скобки после куска шаблона задают, сколько раз он может повториться. Одно число внутри означает ровно столько повторов, два числа через запятую - нижнюю и верхнюю границу включительно.
Точное число повторов удобно для кодов фиксированной длины:
use regex::Regex;
fn main() {
let re = Regex::new(r"\d{4}").expect("bad pattern");
let line = "2024 and 20245";
println!("{}", re.replace_all(line, "!"));
}
Запись с двумя числами задает вилку. Второе число можно опустить, тогда верхней границы нет:
use regex::Regex;
fn main() {
let re = Regex::new(r"[a-z]{2,4}").expect("bad pattern");
let line = "a ab abc abcd abcde";
println!("{}", re.replace_all(line, "*"));
}
Дана строка:
let line = "id:1 id:12 id:123 id:1234";
Выделите числа из двух или трех цифр
после "id:" и замените на "#".
Дана строка:
let line = "x xx xxx xxxx";
Замените группы буквы "x" длиной
ровно три на восклицательный знак.
Скажите, сколько символов подряд покроет
шаблон \d{2,} в начале строки
"99123abc".