Visual Studio 2017 Professional 中的 C++ 反斜杠转义字符未转换

C++ Backslash escape character not transforming in Visual Studio 2017 Professional

我有一个 Visual Studio 2017 Professional。 我正在尝试使用包含反斜杠的正则表达式模式非常简单地在 C++ 中加载字符串变量:

\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b

作为函数的测试正则表达式。正则表达式来自 here,旨在从任何文本中提取 IP 地址。

如果我按原样粘贴正则表达式模式(即 - 一个反斜杠),字符串变量将没有反斜杠。

但是,如果我像您应该的那样添加另一个反斜杠,字符串值将有两个反斜杠:

这在 Eclipse 中不会发生。 为什么会这样?

Visual Studio 调试器将特殊符号显示为转义序列(以便能够显示 \n,例如,在一行中显示大文本)。请注意,字符串条目旁边有一个小放大镜图标。如果你按下它,VS 将打开一个新的 window ,它将在其中显示未转义的(可能是多行的)文本。

顺便说一句,您也需要在正则表达式字符串中转义 \b,即使它不会引发警告(\b 是特殊字符)。