在Qt中,可以使用正则表达式来提取字符串中的数字。以下是一个示例代码:
#include <QDebug>
#include <QRegExp>
int main()
{
QString str = "Hello 123 World 456";
QRegExp rx("\\d+"); // 正则表达式匹配连续的数字
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1) {
QString num = rx.cap(0); // 获取匹配到的数字
qDebug() << num.toInt(); // 转换为整数输出
pos += rx.matchedLength();
}
return 0;
}
输出结果为:
123
456
这段代码定义了一个正则表达式 \\d+
,用于匹配连续的数字。然后使用 indexIn()
函数在字符串中查找匹配项的位置,如果找到则返回匹配的起始位置,否则返回 -1。在一个循环中,不断查找并输出匹配到的数字,直到最后一个匹配项。