Начало и конец строки в регулярках в Rust
Крышка вне набора означает начало текста, знак доллара - конец. Между ними шаблон должен совпасть с края, а не где-то в середине строки.
Так проверяют, что вся строка укладывается в формат, или вырезают префикс с самого начала:
use regex::Regex;
fn main() {
let full = Regex::new(r"^\d+$").expect("bad pattern");
let line = "12345";
println!("{}", full.is_match(line));
let mid = Regex::new(r"^\d+$").expect("bad pattern");
println!("{}", mid.is_match("x123"));
}
Крышка в середине шаблона требует, чтобы кусок шел сразу от начала, но строка может продолжаться дальше:
use regex::Regex;
fn main() {
let re = Regex::new(r"^[A-Z]").expect("bad pattern");
let line = "Rust lang";
if let Some(m) = re.find(line) {
println!("{}", m.as_str());
}
}
Дана строка:
let line = "end.txt";
Проверьте, что строка целиком состоит
из букв и заканчивается на ".txt".
Дана строка:
let line = "prefix-data";
Удалите только начальный фрагмент
"prefix-", если строка с него
начинается.