Полагаю, я неправильно понимаю описание в cppreference , но кто-то может объяснить, почему следующий код:
std::regex comma(",");
std::string string("one,two,");
std::sregex_token_iterator begin{ string.begin(), string.end(), comma, -1 }, end;
for (auto it = begin; it != end; ++it)
{
std::cout << "submatch = '" << it->str() << "'" << std::endl;
}
выводит только два подспаривания:
submatch = 'one'
submatch = 'two'
а не включать пустое суффиксное совпадение для пустой строки после последней запятой?
submatch = ''
Обнаружено с использованием Visual C ++ 2017 и / std: c ++ 17, если это имеет какое-либо значение.