Boost C++ regex - how to return all matches -


i have , string "solutionan ananana solutionbn" want return string start solution , end n.

while using regex boost::regex regex("solu(.*)n"); getting output solutionan ananana solutionbn.

while want out solutionan , solutionbn. new regex in boost appreciated. snippet if code using

#include <boost/regex.hpp> #include <iostream>  int main(int ac,char* av[]) {     std::string strtotal("solutionan ananana solutionbn");     boost::regex regex("solu(.*)n");      boost::sregex_token_iterator iter(strtotal.begin(), strtotal.end(), regex, 0);     boost::sregex_token_iterator end;      for( ; iter != end; ++iter ) {            std::cout<<*iter<<std::endl;     } } 

the problem * greedy. change using non-greedy version (note ?):

int main(int ac,char* av[]) {     std::string strtotal("solutionan ananana solutionbn");     boost::regex regex("solu(.*?)n");      boost::sregex_token_iterator iter(strtotal.begin(), strtotal.end(), regex, 0);     boost::sregex_token_iterator end;      for( ; iter != end; ++iter ) {            std::cout<<*iter<<std::endl;     } } 

Comments

Popular posts from this blog

user interface - Python attempting to create a simple gui, getting "AttributeError: 'MainMenu' object has no attribute 'intro_screen'" -

jquery - Common JavaScript snippet to share files on Google Drive, Dropbox, Box.net or SkyDrive -

Android Gson.fromJson error -