In Perl, I can do this:
$text = '1747239';
@matches = ($text =~ m/(\d)/g);
# @matches now contains ('1', '7', '4', '7', '2', '3', '9')
Using C ++ regular expression matching, the best way to reproduce this behavior is that I get a set of matches, including all matches?
I have this at the moment: -
compiledRegex = std::regex(regex, std::tr1::regex_constants::extended);
regex_search(text, results, compiledRegex);
int count = results.size();
// Alloc pointer array based on count * sizeof(mystruct).
for ( std::cmatch::iterator match = results.begin();
match != results.end();
++match )
{
// Do something with match;
}
However, this will only give me the first match, just like Perl without / g, which is good, but I need the / g effect.
So, is there a good way to do this, or should I continue to work with regex over and over?
user159335
source
share