По причинам, я использую RE2 только для сопоставления регулярных выражений в проекте.
Я пытаюсь экранировать определенные символы, используя библиотеку RE2.
std::string aInput = "~/Test (Folder)/";
RE2::GlobalReplace( &aInput, "(<|>|\\||\\:|\\(|\\)|&|;|\\s)", "\\\\0" );
Я знаю, что \0
вставляет всю соответствующую группу, но как только я добавляю escape-символ, я получаю неожиданный результат:
~ / Test \ 0 \ 0Folder \ 0
вместо
~ / Test \ \ (Папка \) /
Как вставить \ перед каждой подходящей группой, используя RE2?
PS.RE2 :: QuoteMeta () не вариант для меня, так как он будет экранировать символы, которые мне не нужно экранировать.