Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Stroustrup';s C++;书 我试图理解StruousUp C++第四版的以下正则表达式。第178页。_C++_Regex - Fatal编程技术网

如何从Stroustrup';s C++;书 我试图理解StruousUp C++第四版的以下正则表达式。第178页。

如何从Stroustrup';s C++;书 我试图理解StruousUp C++第四版的以下正则表达式。第178页。,c++,regex,C++,Regex,"('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|" 我相信它不是原始字符串文字,所以反斜杠应该在特殊字符前面。我已经试着把它输入,但是我找不到它匹配的东西。我想也许我没有把多余的后斜线从绳子上分离出来 这里有没有经验丰富的人举了一个例子,说明这与什么匹配,以及原始表达式应该是什么 更新: 因为这不是一个原始字符串,所以我删除了额外的斜杠并生成了以下字符串: "('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|" 不

"('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|"
我相信它不是原始字符串文字,所以反斜杠应该在特殊字符前面。我已经试着把它输入,但是我找不到它匹配的东西。我想也许我没有把多余的后斜线从绳子上分离出来

这里有没有经验丰富的人举了一个例子,说明这与什么匹配,以及原始表达式应该是什么

更新: 因为这不是一个原始字符串,所以我删除了额外的斜杠并生成了以下字符串:

"('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|"
不幸的是,我仍然不知道它与什么匹配

谢谢

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

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

对于此模式,应手动执行以下步骤:

  • 从开始和结束处删除
  • \“
    替换为
  • \\
    替换为
    \
    。换句话说,
    \
    的序列应该是长度的一半,向上取整

假设有一个顶层替换,其中右侧的替换是一个空字符串,它看起来与每个输入字符串的每个位置都匹配。

您有一个输入错误。
\u2217
。将其替换为
*
。此外,
ˆ
是一种打字错误,请将其替换为
^
。一旦这样做,您将看到它意味着删除
中使用的单引号和双引号字符串文本之外的
。是的,一半的反斜杠,在regex101.com输入regex字段中4变为2。@WiktorStribiżew我替换了坏字符和斜杠。我用这个字符串更新了这篇文章,但是我在regex101.com上尝试了它,仍然无法找到它匹配的内容。你知道我是否创建了正确的原始字符串吗?没有原始字符串这样的东西。存在原始字符串文本。请参阅@WiktorStribiżew re:non-capturing group“(?:[^\\”]|\\)*”,您是如何匹配\“?我想这会被排除在捕获之外。
匹配任何转义序列。