正则表达式的 Grep 选项。 (ERE、BRE、Perl 正则表达式)差异

正则表达式的 Grep 选项。 (ERE、BRE、Perl 正则表达式)差异

我正在掌握正grep则表达式的窍门,但我对不同的选项感到困惑。

grep --help | grep -i "reg.*ex"
  -E, --extended-regexp     PATTERN is an extended regular expression (ERE)
  -G, --basic-regexp        PATTERN is a basic regular expression (BRE)
  -P, --perl-regexp         PATTERN is a Perl regular expression

我对正则表达式有一定的了解,但我经常发现自己在基础知识上遇到了困难(例如,当它实际上需要“.*”时使用“*”),我将此归咎于不知道正则表达式之间的差异正则表达式的类型(ERE、BRE、Perl regex)

有没有在某处详细解释过?

答案1

回答有关的具体问题*

*正则表达式(任何类型)中的特殊字符作用于前一个表达式。它允许前一个表达式的零个或多个匹配。因此,正则表达式.*匹配任何字符串,无论它是否为空。

文件*名通配字符与任何(可能为空)字符串匹配。

正则表达式不是文件名通配模式(反之亦然)。这种特殊的区别是正则表达式和通配模式之间的区别,而不是不同类型的正则表达式之间的区别。

相关内容