Здесь нет ошибки, все в соответствии с документацией и тем, как работают RE в целом.
Если вы пытаетесь найти каждую цифру в строке, используя QRegExp
, вам нужно выполнить цикл. Один из способов сделать это:
int main(int , char **)
{
QRegExp rx("\\d+");
QString buf_last("read0_1");
int idx = 0;
do {
idx = rx.indexIn(buf_last, idx);
if (idx < 0)
break;
qDebug() << rx.cap(0);
idx += rx.cap(0).length();
} while (idx < buf_last.length());
return 0;
}
"0"
"1"
Это только один способ, особенно фактический стиль кода цикла. Использование QRegularExpression
может быть намного более эффективным, в зависимости от ваших потребностей. Но нахождение произвольного числа таких цифр повлечет за собой цикл где-то.