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

Символ шляпки внутри наборов в Rust

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

Сравним набор с инверсией и набор, где крышка стоит в середине списка:

use regex::Regex; fn main() { let invert = Regex::new(r"[^a]+").expect("bad pattern"); let literal = Regex::new(r"[a^b]+").expect("bad pattern"); let line = "a^b xx a b"; println!("{}", invert.replace_all(line, "!")); println!("{}", literal.replace_all(line, "!")); }

Если крышка нужна в конце списка, ее тоже не путают с инверсией - достаточно перечислить ее как символ:

use regex::Regex; fn main() { let re = Regex::new(r"[0-9^]+").expect("bad pattern"); let line = "2^3 = 8"; println!("{}", re.replace_all(line, "#")); }

Дана строка:

let line = "a^ a b";

Объясните, почему шаблон [^a] и [a^] дают разный результат на этой строке.

Дана строка:

let line = "x^y z";

Найдите фрагмент "x^y" через набор с буквой и символом крышки.

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