我正在掌握正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
回答有关的具体问题*
。
*
正则表达式(任何类型)中的特殊字符作用于前一个表达式。它允许前一个表达式的零个或多个匹配。因此,正则表达式.*
匹配任何字符串,无论它是否为空。
文件*
名通配字符与任何(可能为空)字符串匹配。
正则表达式不是文件名通配模式(反之亦然)。这种特殊的区别是正则表达式和通配模式之间的区别,而不是不同类型的正则表达式之间的区别。