c++ - 正则表达式通过正则表达式测试器但在 qt 中失败

标签 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) 中遇到了相同的行为。

最佳答案

你应该双重转义,即。 \\s\\. 而不是 \s\.

关于c++ - 正则表达式通过正则表达式测试器但在 qt 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849633/

相关文章:

c++ - OpenCV - 在 Vector<Mat> 中保存 Mat

regex - 如何使用 grep 打印出唯一匹配的计数?

php - 这种 PCRE 模式如何检测回文?

c++ - 如何从 QT (C++) 中的子进程联系父进程以从类执行方法?

c++ - 创建用于将一些文本放入 QTextEdit 的插槽时出现问题

c++ - 在使用 C++ 的 win32 GUI 编程中,如何在 TreeViewCtrl 的根项之前添加扩展按钮?

android - 使用 Qt for Android 在 Android 中显示网页

c++ - 为什么使用 std::sort() ) 给我垃圾值?

regex - URL正则表达式组捕获

c++ - 将数据从工作线程发送到 Qt 中的 gui 线程