如何从Stroustrup的C++书中解释这个正则表达式?
How to interpret this RegEx from Stroustrup's C++ book?
我试图理解Stroustrups C++第4版第178页的以下正则表达式。
"('(?:[^']|\\.)*'|"(?:[^\\"]|\\.)*")|"
我相信它不是原始字符串文字,所以反斜杠应该在特殊字符的前面。 我尝试将其输入 www.regex101.com 但是找不到它匹配的内容。 我想也许我没有将多余的反斜杠与字符串隔离开来。
这里有更多经验的人有一个例子来说明这匹配什么以及原始表达式应该是什么?
更新: 因为这不是 RAW 字符串,所以我删除了多余的斜杠并提出了这个字符串:
"('(?:[^']|\.)*'|"(?:[^\"]|\.)*")|"
不幸的是,我仍然无法弄清楚它匹配什么。
谢谢
我相信这不是原始字符串文字
正确。
只需打印字符串即可查看可粘贴到 regex101.com 中的未转义版本,这可以解释其匹配的内容。
这些步骤应手动适用于此模式:
- 从开始和结束中删除
"
- 将
"
替换为"
- 将
\
替换为。换句话说,
序列应该变成四舍五入的一半。
假设存在顶级交替,其中右侧替代项是空字符串,看起来这匹配每个输入字符串的每个位置。
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++正则表达式无限循环
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 带有多个字符分隔符的正则表达式
- C++ 使用增强正则表达式库时断言崩溃
- 有人可以帮助我处理正则表达式吗?
- 使用正则表达式获取大括号块的列表
- 正则表达式以匹配数字的重复模式,后跟任何类型的分隔符?
- 组合正则表达式部分使用 | 不起作用的 C++
- 为什么C++正则表达式这么慢?
- 如何使HTML5电子邮件验证正则表达式在C++中工作?
- 在C++中实现正则表达式
- C++正则表达式替换整个单词
- 用C++编写正则表达式的正确方法是什么?
- 如何从Stroustrup的C++书中解释这个正则表达式?
- 为什么这个正则表达式C++在括号表达式中抛出无效范围异常?
- C++:匹配正则表达式,什么是匹配?
- C++:正则表达式匹配代码,打印多个匹配项?