Count number of matches

前端 未结 2 1038
刺人心
刺人心 2020-12-09 05:56

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         


        
2条回答
  •  温柔的废话
    2020-12-09 06:35

    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;
    

提交回复
热议问题