, Я обновил свой ответ в глубине души.
l я могу сделать это:
$text = '1747239';
@matches = ($text =~ m/(\d)/g);
# @matches now contains ('1', '7', '4', '7', '2', '3', '9')
С помощью сопоставления регулярных выражений C ++, каков наилучший способ воспроизвести это поведение, чтобы я получил набор совпадений, включающий все совпадения?
У меня есть это на данный момент: -
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;
}
Однако это даст мне только первое совпадение, как в Perl без / g, что хорошо, но я бы хотел эффект / g.
Итак, есть ли хороший способ сделать это, или я должен продолжать выполнять регулярные выражения снова и снова?