如何从Stroustrup的C ++书中解释此RegEx?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Stroustrup的C ++书中解释此RegEx?相关的知识,希望对你有一定的参考价值。

我正在尝试从Stroustrups C ++ 4th Ed中了解以下RegEx。第178页。

"('(?:[ˆ\\\\']|\\\\.)∗'|\"(?:[ˆ\\\\\"]|\\\\.)∗\")|"

我相信这不是原始的字符串文字,因此反斜杠应该在特殊字符的前面。我尝试将其输入www.regex101.com,但是找不到与之匹配的内容。我想也许我不是从字符串中分离出多余的反斜线。

这里有更多经验的人是否有一个匹配示例以及原始表达式应该是什么的示例?

谢谢

答案

我相信这不是原始字符串文字

正确。

您可以简单地打印字符串以查看未转义的版本,您可以将其粘贴到regex101.com中,这可以解释其匹配项。

这些步骤应在此模式下手动进行:

  • 从开始和结束处删除"
  • \"替换"
  • \\替换\。换句话说,\的序列应变成原来的一半,四舍五入。

鉴于存在顶层交替,其中右手替代项是一个空字符串,看起来它与每个输入字符串的每个位置都匹配。

以上是关于如何从Stroustrup的C ++书中解释此RegEx?的主要内容,如果未能解决你的问题,请参考以下文章

如何从r中的列联表中获取带有案例的data.frame?

如何将文件的内容读入C中的字符串?

从effective C++中窥探C++11特性

软件需求模式阅读笔记02

《构建之法》第四章读后感

如何在类内部定义枚举并从外部使用它