Карманы во всех совпадениях в C++
При переборе std::sregex_iterator можно задавать
карманы для поиска совпадений.
Пример строки:
std::string txt = "12 43 56 ab"
Найдем все пары чисел и разложим их по карманам:
std::regex re(R"((\d)(\\d))");
for (std::sregex_iterator it(txt.begin(), txt.end(), re), end; it != end; ++it) {
std::cout << res << "\n";
Результат выполнения кода:
[('1', '2'), ('4', '3'), ('5', '6')]
Дана следующая строка:
std::string txt = '12:37 15:48 17:59";
Найдите в ней все подстроки с временем и для каждого найденного разложите часы и минуты по карманам.
Дана строка:
std::string txt = 'site.ru sss site.com zzz site.net";
Получите доменные имена из этой строки, положив имя домена и его зону в разные карманы.