扫码一下
查看教程更方便
解析:
在C ++代码中,正则表达式3\+6=9
必须写为3\\+6=9
。C ++编译器将源代码中转义的反斜杠转换为传递给regex库的字符串中的单个反斜杠。要匹配c:\windows
,我们需要使用正则表达式c:\\windows
。作为C ++源代码中的字符串,此正则表达式变为c:\\\\windows
。四个反斜杠实际上匹配一个反斜杠。这里的反斜杠可能看着有点迷糊,您要知道,反斜杠是具有转义功能的,或C++编译器会将两个反斜杠\\
解析成一个反斜杠\
传给正则表达式引擎,所以如果说是c:\\windows
,那么C++编译器其实传给正则表达式引擎的是解析之后的c:\windows
。这样是没法匹配的。所以需要C++编译器传给正则表达式引擎c:\\windows
。因此需要在C++源代码中写为c:\\\\windows
。这样传给正则表达式引擎的才是c:\\windows
,然后经过正则表达式分析c:后面是一个被转义的反斜杠。因此可以和字符串c:\windows
进行匹配。