我知道模式匹配正则表达式中的or或 的[abc]
单个字符,但是如何匹配or ?我不知道如何正确地逃离他们。a
b
c
[
]
答案1
要使用的模式是[][]
.以 GNUgrep
为例。以下三个都可以。
grep '[][]' file
grep -P '[][]' file
grep -E '[][]' file
解释:正则表达式中的括号表达式不能有空体(尝试grep '[]' file
一下会报错),所以第一个[
实际上和最后一个在一起]
。[
括号对内部不会产生干扰,因为括号表达式不能嵌套,因此一旦看到 a , RE 引擎将从其后的第二个字符开始[
查找第一个字符作为结束字符。在括号表达式内,仅和范围以及出现在开头的 被特殊处理,其他字符按字面处理,无需转义(有关手册页的链接,请参阅 @dave_thompson_085 的评论)。]
]
[:class:]
[.coll.]
[=equiv=]
c-c
^