Lynn Allan wrote:
I want to use boost::regex 1.33.1 and vc7.1 on a WinXp-Sp2 computer to remove common words from a file. I'm encountering a problem which seems related to having two of the common words next to each other.
std::string test(" in the beginning god created the heavens and the earth "); boost::regex reg; reg.assign("( and | can | did | the | in | a )"); test = boost::regex_replace(test, reg, " "); cout << test << endl;
The result is: " the beginning god created heavens the earth "
Am I doing something wrong or leaving out a step? Seems like the above ought to work. It catches one of the occurrences of " the " between " created " and " heavens " but not those immediately after the " in " or " and ".
Check your whitespace in the expression: the first match is " in ", the remaining text then starts "the beginning" which won't match " the " etc etc. Did you mean to turn on the x-modifier? John.