Qt中使用正则表达式提取字符串中浮点数

 正则表达式: "-?(([1-9]\\d*\\.\\d*)|(0\\.\\d*[1-9]\\d*)|([1-9]\\d*))"

    QString data = "12.31 next 37.21";
    QRegExp rx("-?(([1-9]\\d*\\.\\d*)|(0\\.\\d*[1-9]\\d*)|([1-9]\\d*))");
    int p = 0;
    qDebug() << "begin";
    QStringList data_list;
    while ((p = rx.indexIn(data, p)) != -1)
    {
        data_list.append(rx.cap(1));
        p += rx.matchedLength(); // 上一个匹配的字符串的长度

    }
    qDebug() << data_list;
    qDebug() << "end";

 输出结果

你可能感兴趣的:(QT学习之路)