相关疑难解决方法(0)

为什么有些正则表达式命令对不同字符的 '\' 有相反的解释?

以这个命令为例:

find . -regex ".*\.\(cpp\|h\)"
Run Code Online (Sandbox Code Playgroud)

这将在您的目录中找到所有 .h 和 .cpp 文件。句点字符“.” 在正则表达式中通常表示“任何字符”。要使其仅匹配实际句点,您必须使用反斜杠字符 '\' 对其进行转义。

在这种情况下,给定一个具有特殊含义的字符,您必须对其进行转义以获取它所代表的实际字符。

现在,取括号和“或”栏,分别是字符 '(', ')' 和 '|'。这些也有特殊含义,用于对正则表达式进行分组。但是,要获得特殊含义,必须使用反斜杠对字符进行转义!没有反斜杠,字符具有它所代表的实际字符的含义。

为什么是“.” 与 '(', ')' 和 '|' 区别对待?

find regular-expression

10
推荐指数
1
解决办法
526
查看次数

标签 统计

find ×1

regular-expression ×1