2013-02-13 47 views
1

我是新來的正則表達式,我試圖使用QRegExp中的lookahead斷言功能來檢查字符串的長度。這是一個很簡單的例子:展望未來在QRegExp中工作嗎?

int main(int argc, char* argv[]) 
{ 
    QRegExp regexp("(?=^.{0,5}$)[0-9]*"); 
    qDebug() << "result:" << regexp.exactMatch("12345"); 
    return 1; 
} 

它打印: 「結果:假」。

我測試了這個正則表達式和這個網頁上的字符串:http://regexpal.com/,它顯示匹配。

有什麼想法?提前致謝。

+1

提供更多信息 – NAZIK 2013-02-13 09:03:21

+0

我的RegExp知識是該死的糟糕,但我注意到在文檔中有2個與「貪婪量詞」相關的RegExp模式語法版本。您的測試是否適用於此?文檔:http://qt-project.org/doc/qt-4.8/qregexp.html#greedy-quantifiers – cmannett85 2013-02-13 13:29:03

+0

你的正則表達式很好,但是一些正則表達式引擎不能用於可變長度的lookaround斷言。 QRegExp可能就是其中之一。 – 2013-02-24 10:25:06

回答

0

對於我來說,使用QT 4.8.6,它在「result:true」中的結果是正確的。無論如何,如果你把^放在前面或之前,就像FrankieTheKneeMan所說的那樣。