Спецсимволы-исключения внутри наборов в C++
Вы уже знаете, что спецсимволы внутри []
становятся обычными символами. Есть, однако,
исключения: если вам нужны квадратные
скобки как символы внутри [ ] - то
их нужно экранировать обратным слешем. Для
примера в следующем коде шаблон поиска
выглядит так: между иксами стоит
квадратная скобка:
std::string txt = "x]x xax x[x x1x"
std::regex re(R"(x[\\[\\]]x)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
В результате в переменную запишется следующее:
'! xax ! x1x'
Дана строка:
std::string txt = "x[]z x[[]]z x()z"
Напишите регулярку, которая найдет все
слова по шаблону: буква 'x',
затем квадратные скобки любое количество
раз, затем буква 'z'.
Дана строка:
std::string txt = "x[]z x{}z x.z x()z x([])z"
Напишите регулярку, которая найдет все
слова по шаблону: буква 'x',
затем любое количество любых скобок, затем
буква 'z'.