Спецсимволы внутри наборов в C++
Спецсимволы внутри [ ] становятся
обычными символами. Это значит, что их не
надо экранировать обратным слешем.
В данном примере шаблон поиска выглядит
так: между иксами любая буква 'a',
'b', 'c', либо точка:
std::string txt = "xax xbx xcx xdx x.x x@x"
std::regex re(R"(x[abc.]x)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
Результат выполнения кода:
'! ! ! xdx ! x@x'
В данном примере шаблон поиска выглядит так: между иксами любая маленькая латинская буква или точка:
std::string txt = "xax xbx xcx x@x"
std::regex re(R"(x[a-z.]x)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
Результат выполнения кода:
'! ! ! x@x'
Дана строка:
std::string txt = "aba aea aca aza axa a.a a+a a*a"
Напишите регулярку, которая найдет строки
'a.a', 'a+a', 'a*a',
не затронув остальных.
Дана строка:
std::string txt = "xaz x.z x3z x@z x$z xrz"
Напишите регулярку, которая найдет строки
по шаблону: буква 'x', затем НЕ
точка, НЕ собака, и НЕ доллар, а потом
буква 'z'.