How do I count the number of matches using C++11's std::regex
?
std::regex re("[^\s]+");
std::cout << re.matches("Harry Botter - The robot who lived.").count() << std::endl;
Expected output:
See Question&Answers more detail:os7
How do I count the number of matches using C++11's std::regex
?
std::regex re("[^\s]+");
std::cout << re.matches("Harry Botter - The robot who lived.").count() << std::endl;
Expected output:
See Question&Answers more detail:os7
You can use regex_iterator
to generate all of the matches, then use distance
to count them:
std::regex const expression("[^\s]+");
std::string const text("Harry Botter - The robot who lived.");
std::ptrdiff_t const match_count(std::distance(
std::sregex_iterator(text.begin(), text.end(), expression),
std::sregex_iterator()));
std::cout << match_count << std::endl;