当我们需要从一个字符串中提取数字时,可以用正则表达式来操作
QString str = "你的金额是: 0.22示范33^%zd卡兹克44是13.5x的5&ss";
QRegExp rx("\\d+\\.\\d+|(\\d+)");//定义正则表达式,前面是浮点数的规则,后面是整数的规则
QList<float> list;
int pos = 0;
while ((pos = rx.indexIn(str, pos)) != -1)//从指定位置循环查找
{
list<<rx.cap().toFloat();//把获取到的字符串转成浮点数
pos += rx.matchedLength();//累加匹配的长度,便于下次查找
}
qDebug()<<list;
输出结果: