Карманы в строке замены в C++
В строке замены для std::regex_replace номер
кармана пишут как $1, $2
и так далее. Так в результат попадает текст,
который попал в скобки шаблона.
Обернем каждое найденное число в круглые скобки:
std::string txt = "1 23 456 xax"
std::regex re(R"rx((\\d+))");
std::string res = std::regex_replace(txt, re, "($1)");
std::cout << res << "\n";
Заменим фрагмент x ... x, положив цифры из кармана между восклицательными знаками:
std::string txt = "x1x x23x x456x xax"
std::regex re(R"rx(x(\\d+)x)rx");
std::string res = std::regex_replace(txt, re, "!$1!");
std::cout << res << "\n";
Дана строка:
std::string txt = "aa@bb cc@dd"
Поменяйте местами части до и после "@"
в первой паре букв и выведите результат.