正则表达式传递正则表达式测试程序但在qt中失败

时间:2014-02-18 09:40:46

标签: c++ regex qt

我正在使用正则表达式测试iptables是否已设置。这是一个试图实现的精简版。

QRegExp rx_preroute(".*DNAT\s*udp\s*--\s*anywhere\s*192\.168\.13\.115\s*to:10\.5\.110\.123:7891.*");
QString out = "DNAT       udp  --  anywhere             192.168.13.115       to:10.5.110.123:7891";
qDebug() << rx_preroute.exactMatch(out);
//prints out false

然而,如果我在正则表达式检查器(http://regexpal.com/)中做同样的事情,它就会通过。在我看来,通过手动检查模式,它应该通过。 Qt正在运行默认的正则表达式语法。我对setPatternSyntax(QRegExp::RegExp2)感到了同样的行为。

1 个答案:

答案 0 :(得分:3)

你应该双重逃避即。 \\s\\.代替\s\.