sed中的特殊字符

mnr*_*mnr 6 regex grep sed

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

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

Wil*_*ell 5

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

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

.[\ 除了在括号表达式中使用时,句点,左方括号和反斜杠应该是特殊的(请参阅RE括号表达式).包含'['且不带反斜杠且不是括号表达式的表达式的表达式会产生未定义的结果.

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

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

$ 当用作锚时,美元符号应该是特殊的.

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