2014-01-20 82 views
1

我試圖在回調函數中將字符串與QRegExp匹配。我正在使用QtC++實現。我寫形式的正則表達式:Atmospheres.(\\d+).(latitude|longitude|radius|path)並驗證它hereQRegExp錯誤匹配模式

的問題是,與QRegExp總是返回一個-1,不匹配匹配正則表達式。

下面是一些代碼:

QString name = "Atmospheres.1.latitude"; 
QRegExp regex("Atmospheres.(\\d+).(latitude|longitude|radius|path)"); 

int pos = 0; 
regex.indexIn(name, pos); 

上面一行總是返回-1。有什麼建議麼?謝謝。

+0

如果您使用的是Qt 5.x的,你應該使用,而不是QRegExp QRegularExpression。 –

+0

使用4.8,但感謝您的建議! –

回答

2

你確定你正在運行這個確切的代碼嗎?它正常工作對我來說:

#include <iostream> 
#include <QString> 
#include <QRegExp> 

int main() 
{ 
    QString name = "Atmospheres.1.latitude"; 
    QRegExp regex("Atmospheres.(\\d+).(latitude|longitude|radius|path)"); 
    int pos = regex.indexIn(name, 0); 
    std::cerr << QT_VERSION_STR << ": " << pos << std::endl; 
    return 0; 
} 

執行該生產:

5.2.0: 0 
+0

這根本不是'QRegExp'問題。我正在初始化構造函數中的表達式,但它並未在我使用的特定構造函數中初始化。我以爲我在服用瘋狂的藥丸。感謝您的驗證。這裏是+15。 –