如何将“[”或“]”(括号)与正则表达式匹配?

如何将“[”或“]”(括号)与正则表达式匹配?

我知道模式匹配正则表达式中的or或 的[abc]单个字符,但是如何匹配or ?我不知道如何正确地逃离他们。abc[]

答案1

要使用的模式是[][].以 GNUgrep为例。以下三个都可以。

grep '[][]' file
grep -P '[][]' file
grep -E '[][]' file

解释:正则表达式中的括号表达式不能有空体(尝试grep '[]' file一下会报错),所以第一个[实际上和最后一个在一起][括号对内部不会产生干扰,因为括号表达式不能嵌套,因此一旦看到 a , RE 引擎将从其后的第二个字符开始[查找第一个字符作为结束字符。在括号表达式内,仅和范围以及出现在开头的 被特殊处理,其他字符按字面处理,无需转义(有关手册页的链接,请参阅 @dave_thompson_085 的评论)。]][:class:] [.coll.] [=equiv=]c-c^

相关内容