无效的正则表达式在Qt但在正则表达式教练这个相同的正则表达式是有效的
Invalid regex in Qt yet in regex coach this same regex is valid
我有以下regex,这似乎是一个有效的regex根据regex教练,但qt的regexp。isValid表示别的意思。谁能告诉我这个短语是怎么回事?
^[^,.:;*<>[]+"\/]+.cpp$
/
不应该是单转义的。它是c++中的一个常规字符。[
和*
需要类内部的正则表达式转义。.
需要正则表达式转义,而不是c++转义。
规则:
- 如果c++需要转义(例如:"),使用单个
- 如果regex需要转义(例如]),使用双引号
- 如果regex和c++都需要转义,使用三重格式
- 当你的regex语法需要一个时,c++需要转义,所以你得到
\
- 当转义自身时,除了自身之外还需要三个,所以得到4。
:
"^[^,.:;*<>[\]+"\/]+\.cpp$"
根据http://doc.qt.nokia.com/latest/qregexp.html Qt/c++需要双转义,所以尝试像这样将每个反斜杠加倍:
^[^,.:;*<>[\]+"\\/]+\.cpp$
我也删除了其中的一些,因为在字符类中它们不需要转义。
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 正则表达式C++如何搜索有效的 Linux 设备节点
- 正则表达式有效和无效的切换
- 仅查找第一个 std::正则表达式有效匹配
- 有效文件夹名称C (Windows)的正则表达式
- 无效的正则表达式在Qt但在正则表达式教练这个相同的正则表达式是有效的