Вам нужно получить все совпадения с помощью цикла, например
QRegExp rx("\\d+");
QString str = ""this string contains number 123 and 567*872"";
QStringList MyList;
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {
MyList << rx.cap(0);
pos += rx.matchedLength();
}
Здесь rx.cap(0)
обращается к группе 0, всему совпадению.QRegExp::indexIn
пытается найти совпадение в str
с позиции offset
(0
по умолчанию).Если смещение -1
, поиск начинается с последнего символа;если -2
, рядом с последним символом;и т.д. .Хотя позиция не -1
, мы можем перебирать все совпадения в строке.