1. 程式人生 > 其它 >Qt中使用正則表示式提取字串中浮點數

Qt中使用正則表示式提取字串中浮點數

技術標籤: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";

輸出結果