7

有人知道特殊字符的完整列表sed是什么吗?

请不要给出这样的答案,它与 的特殊字符列表相同grep,因为这只是将我的问题转换为:有人知道特殊字符的完整列表grep是什么吗?

4

2 回答 2

5

这取决于。严格来说,符合标准的 sed 只能使用标准规定基本正则表达式:

BRE 特殊字符及其具有特殊含义的上下文如下:

.[\ 句点、左方括号和反斜杠应该是特殊的,除非在括号表达式中使用(请参阅 RE 括号表达式)。包含前面没有反斜杠且不属于括号表达式的“[”的表达式会产生未定义的结果。

*星号应该是特殊的,除非在括号表达式中使用,作为整个 BRE 的第一个字符(在初始 '^' 之后,如果有的话),或作为子表达式的第一个字符(在初始 '^' 之后,如果任何); 请参阅匹配多个字符的 BRE

^当用作锚(参见 BRE 表达式锚定)或作为括号表达式的第一个字符(参见 RE 括号表达式)时,抑扬符应该是特殊的

$美元符号在用作锚点时应是特殊的。

所以完整的列表是.[\*^$,但上下文很重要。此外,许多 sed 提供使用扩展正则表达式 (ERE) 的选项,这将扩展列表并更改字符特殊的上下文。例如,没有 ERE 的分组是使用\(and组成的\),但有 ERE的(and)本身是特殊的,必须转义才能按字面意思匹配。

于 2012-11-21T18:55:53.733 回答
3

我认为这是字符 [\^$.|?*+() 的完整列表,sed 将以不同于普通字符的方式对其进行响应。

于 2012-09-16T16:04:38.050 回答