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

Экранирование в регулярных выражениях в Rust

Многие знаки в шаблоне имеют особый смысл. Чтобы искать их как обычный текст, перед знаком ставят обратный слэш. В сырой строке Rust для одного слэша в шаблоне пишут два слэша в коде.

Точка без экранирования означает любой символ, а с экранированием - только точку:

use regex::Regex; fn main() { let any = Regex::new(r"a.c").expect("bad pattern"); let dot = Regex::new(r"a\.c").expect("bad pattern"); let line = "abc a.c aXc"; println!("{}", any.replace_all(line, "!")); println!("{}", dot.replace_all(line, "!")); }

Тот же прием нужен для скобок, звездочки, плюса, крышки и других служебных знаков, если они должны совпасть буквально:

use regex::Regex; fn main() { let re = Regex::new(r"\(\d+\)").expect("bad pattern"); let line = "item (12) and (3)"; println!("{}", re.replace_all(line, "*")); }

Дана строка:

let line = "2 + 2 = 4";

Замените знак плюс между числами на "plus", не трогая остальной текст.

Дана строка:

let line = "file.txt and fileXtxt";

Найдите только "file.txt" и замените на "doc".

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