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

Спецсимволы внутри наборов в Rust

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

Сравним точку снаружи и внутри набора на одной строке:

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

Скобки и обратный слэш внутри набора тоже можно перечислять буквально, если они нужны как символы строки:

use regex::Regex; fn main() { let re = Regex::new(r"[()[\]{}]").expect("bad pattern"); let line = "no (brackets) here"; println!("{}", re.replace_all(line, "#")); }

Дана строка:

let line = "a*b a.b aXb";

Составьте набор, который найдет только "a.b", и замените на "ok".

Дана строка:

let line = "x+y x*y";

Найдите знак плюс как обычный символ между буквами и замените на "-".

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