Boost::regex を使用して文を個々の単語に分割しようとしています。しかし、最後の単語を印刷していません。何が間違っているのですか?
コードは次のとおりです。
#include <iostream>
#include <boost/regex.hpp>
using namespace std;
using namespace boost;
int main() {
smatch matchResults;
regex whiteChars("(.*?)[\\s]");
string p = "This is a sentence";
for(string::const_iterator sit = p.begin(), sitend = p.end(); sit != sitend;)
{
regex_search(sit, sitend, matchResults, whiteChars);
if(matchResults[1].matched)
cout << matchResults[1] << endl;
sit = matchResults[0].second;
}
return 0;
}
Output:
This
is
a
Expected Output:
This
is
a
sentence