我对正则表达式非常了解,我要做的就是从字符串中获取所有数字。
QRegExp rx;
rx.setPattern("\\d+");
rx.indexIn("this string contains number 123 and 567*872");
QStringList MyList = rx.capturedTexts();
预期结果是:123、567和872。 我得到的是:123
答案 0 :(得分:0)
您需要使用
这样的循环来获取所有匹配项flex-flow: row-reverse;
在这里,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();
}
进入第0组,即整个比赛。 QRegExp::indexIn
试图从位置 rx.cap(0)
str
找到匹配项 em> (默认为{offset
)。如果offset为0
,则搜索从最后一个字符开始;否则,搜索从最后一个字符开始。如果为-1
,则在最后一个字符的后面;等等。虽然位置不是-2
,但我们可以遍历字符串中的所有匹配项。