有人知道在 sed
中所有特殊字符的完整列表吗?
请不要给出这样的答案:它与 grep
中的特殊字符列表相同,因为那只是把我的问题转化成:有人知道在 grep
中所有特殊字符的完整列表吗?
.[\
句点、左方括号和反斜杠在除了用于表示一个括号表达式(参见RE Bracket Expression)时都是特殊字符。一个包含未被反斜杠转义的左方括号并且不属于括号表达式的表达式会产生未定义的结果。
*
星号在除了用于表示一个括号表达式、作为整个BRE的第一个字符(如果有初始的'^'),或者作为子表达式的第一个字符(如果有初始的'^')时都是特殊字符;参见BREs Matching Multiple Characters。
^
插入符号在作为锚点(参见BRE Expression Anchoring)或者作为一个括号表达式的第一个字符(参见RE Bracket Expression)时都是特殊字符。
$
美元符号在作为锚点时是特殊字符。.[\*^$
,但上下文很重要。此外,许多sed提供使用扩展正则表达式(EREs)的选项,这将扩展列表并更改字符被视为特殊字符的上下文。例如,在没有EREs的情况下,使用\(
和\)
进行分组,但是在有EREs的情况下,(
和)
本身就是特殊字符,必须转义才能与其字面匹配。我认为这是sed会以不同于普通字符的方式响应的特殊字符[\^$.|?*+()]的完整列表。
sed
中,字符()|+?
本身并不特殊,只有在前面加上反斜杠才是特殊符号。 - tripleee^-]
中(但没有其他字符类),也有特殊的含义。实际上,它是一个独立的小语言。 - tripleee