调试正则表达式不匹配
Debug regex mismatch
>我想知道在使用 std::regex 匹配 std::string 时,是否有办法对不匹配进行某种诊断。
std::string to_match = "abc123abc123";
std::regex re("(abc)(123)(sss)123");
bool b = std::regex_match(to_match, re);
我想知道一些关于上述不匹配的信息,例如不匹配发生在to_match字符 7 处。
我想知道一些关于上面不匹配的事情,例如 不匹配发生在to_match中的字符 7。
没有实用程序可以让您查看标准库中正则表达式的不匹配。
表达式匹配或不匹配,就这么简单。
如果你绝对想找到它不匹配的地方(对于简单的表达式(,我想你可以走蛮力路线
(abc)(123)(sss)123
匹配吗?(abc)(123)(sss)12
匹配吗?(abc)(123)(sss)1
匹配吗?(abc)(123)(sss)
匹配吗?
等。但这只是一种方式,它并没有考虑到去掉像这样的子表达式。
(abc)(123)(sss)123
^^^^^
taking away that
您需要处理括号:
Does "(abc)(123)(sss" match?
^
ops, missing parenthesis. This will throw an exception.
如果您正确处理表达式,这可能适用于上述简单表达式,非常容易出错。
但是想象一下,当表达式变得更加复杂时,例如量词,决策,环顾四周等。然后任务将变得更加困难。
我同意这些评论,并建议使用外部正则表达式工具来测试您的正则表达式。
相关文章:
- C++:匹配正则表达式,什么是匹配?
- C++ 正则表达式不匹配空格
- 如何提升Perl正则表达式匹配,支持区分大小写/不区分大小写
- C++正则表达式字符类不匹配
- 调试正则表达式不匹配
- 正则表达式在 c++ 中不匹配?
- 正则表达式 - 匹配不遵循特定模式的字符
- 我的 Boost 正则表达式与任何内容都不匹配
- (C++) 确定不匹配的正则表达式捕获组
- C++11 正则表达式匹配不以句点结尾的完整单词
- 为什么regex_match与我的正则表达式不匹配
- 不使用正则表达式的C++多字符串匹配
- 在不使用正则表达式的情况下解析 HTTP 请求
- 在C++中匹配正则表达式的惯用方法
- Boost正则表达式不替换正则表达式网站上正确替换的表达式
- PHP-CPP C++ 扩展找不到正则表达式
- 如何查找给定的字符串是否符合十六进制表示法,例如不带正则表达式的0x34FF
- 如何在c++中匹配正则表达式中的 字符
- 在不使用正则表达式之前和之后输出字符串向量'word'。制定相关程序
- 整数匹配正则表达式模式不工作