2013-02-13 85 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所说的那样。