qregexp 从字符串中提取所有数字
qregexp extract all numbers from string
我对正则表达式很菜鸟,我只想从字符串中获取所有数字。
QRegExp rx;
rx.setPattern("\d+");
rx.indexIn("this string contains number 123 and 567*872");
QStringList MyList = rx.capturedTexts();
预期结果是:123、567 和 872。
我得到的是: 123
您需要使用
这样的循环来获取所有匹配项
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
)。如果 offset 为 -1
,则从最后一个字符开始搜索;如果 -2
,在倒数第二个字符处;等等。虽然位置不是 -1
,但我们可以遍历字符串中的所有匹配项。
我对正则表达式很菜鸟,我只想从字符串中获取所有数字。
QRegExp rx;
rx.setPattern("\d+");
rx.indexIn("this string contains number 123 and 567*872");
QStringList MyList = rx.capturedTexts();
预期结果是:123、567 和 872。 我得到的是: 123
您需要使用
这样的循环来获取所有匹配项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
)。如果 offset 为 -1
,则从最后一个字符开始搜索;如果 -2
,在倒数第二个字符处;等等。虽然位置不是 -1
,但我们可以遍历字符串中的所有匹配项。