qregexp从字符串

时间:2018-09-20 16:37:54

标签: regex qt qt4 qregexp

我对正则表达式非常了解,我要做的就是从字符串中获取所有数字。

QRegExp rx;
rx.setPattern("\\d+");
rx.indexIn("this string contains number 123 and 567*872");
QStringList MyList = rx.capturedTexts();

预期结果是:123、567和872。 我得到的是:123

1 个答案:

答案 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,但我们可以遍历字符串中的所有匹配项。