在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。在一個循環中,不斷查找并輸出匹配到的數字,直到最后一個匹配項。