迹忆客 计算机编程题库

题库 > 正则表达式 > 元字符 练习:20

元字符

在C++中,下列那一个正则表达式可以匹配字符串`c:\windows`
  • c:\windows
  • c:\\windows
  • c:\\\windows
  • c:\\\\windows
正确答案是:D
正确率:55%

解析:

在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进行匹配。

查看笔记

扫码一下
查看教程更方便