Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpRgMl 181 of 288 menu
◀ ▶

Многострочность в регулярках в Rust

Без флага крышка и доллар привязаны к началу и концу всего текста целиком. Многострочный режим переносит эти края на границы каждой строки внутри текста.

Флаг можно включить в начале шаблона или через сборщик шаблона с полем multi_line:

use regex::RegexBuilder; fn main() { let re = RegexBuilder::new(r"^\w+") .multi_line(true) .build() .expect("bad pattern"); let line = "first\nsecond\nthird"; for m in re.find_iter(line) { println!("{}", m.as_str()); } }

Тот же флаг в тексте шаблона записывают как (?m) в начале. Тогда доллар совпадет с концом каждой строки:

use regex::Regex; fn main() { let re = Regex::new(r"(?m)line$").expect("bad pattern"); let text = "first line\nsecond line"; println!("{}", re.replace_all(text, "!")); }

Дана строка:

let text = "aa\nbb\ncc";

С многострочным режимом найдите буквы в начале каждой строки и выведите их списком.

Дана строка:

let text = "one\ntwo";

Объясните, почему шаблон с крышкой без флага найдет только первую строку.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить