regex - sed 中的特殊字符

标签 regex sed grep

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

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

最佳答案

这取决于。严格来说,符合标准的 sed 必须只使用基本正则表达式,其中 the standard状态:

BRE 特殊字符及其具有特殊含义的上下文如下:
.[\句点、左方括号和反斜杠应该是特殊的,除非在括号表达式中使用(参见 RE 括号表达式)。包含前面没有反斜杠且不是括号表达式的一部分的 '[' 的表达式会产生未定义的结果。
*星号应该是特殊的,除非在括号表达式中使用,作为整个 BRE 的第一个字符(在首字母 '^' 之后,如果有),或作为子表达式的第一个字符(在首字母 '^' 之后,如果任何);请参阅匹配多个字符的 BRE
^当用作 anchor 时,抑扬符应该是特殊的(参见 BRE 表达式 anchor 定)
或作为括号表达式的第一个字符(请参阅 RE 括号表达式)
$美元符号在用作 anchor 时应该是特殊的。

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

关于regex - sed 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446406/

相关文章:

包含反引号的 Linux 管道数据

linux - 当将彩色关键字 grep 传递到文件时,Bash 不保存颜色

unix - 在目录列表中递归查找文件

java - 捕获未跟随某些数字的数字流

regex - 如何在 R 中使用子函数

sed - 在纯文本文件的每 4 行后插入一个逗号

sed - 使用 sed 删除文件的行 - 意外行为

linux - 如何从一个文件中查找另一个文件中的单词?

python - 解析Python函数声明

regex - 用 sed 区分大小写替换已知单词