什么样的正则表达式是grep?

时间:2009-07-02 15:07:24

标签: regex perl grep pcre

我猜它不是Perl兼容的正则表达式,因为有一种特殊的grep,特别是PCRE。什么是grep最相似的?

我需要知道grep有什么特殊的怪癖吗? (我习惯于Perl和PHP中的preg函数)

6 个答案:

答案 0 :(得分:22)

默认的GNU grep行为是在POSIX basic regular expressions上使用略带味道的变体,对egrep进行类似调整的POSIX extended regular expressions种类(通常也称为grep -E )。 POSIX ERE是PHP ereg()使用的。

GNU grep还声称支持PCRE的grep -P。所以没有特别需要的grep

答案 1 :(得分:10)

POSIX BRE (Basic Regular Expressions)

您可以比较各种口味here

答案 2 :(得分:8)

有一个很好的写作here。引用页面,“grep应该使用BRE,除了grep -E使用ERE。(GNU grep适合某些扩展,其中POSIX保留了未指定的行为)。”

换句话说,这是一个很长的故事。 ;)

答案 3 :(得分:1)

grep手册页非常详尽地解释了grep中可用的正则表达式的风格。 man grep非常有用。

答案 4 :(得分:1)

Grep是POSIX正则表达式的一个实现。 posix正则表达式有两种类型 - 基本正则表达式和扩展正则表达式。在grep中,通常使用-E选项来允许扩展正则表达式。

答案 5 :(得分:0)

PHP中没有常规的grep函数。如果您指的是ereg系列PHP函数,那么它们就是POSIX正则表达式。如果您指的是Linux grep命令行实用程序,那么它们也是POSIX regular expressions。它支持基本和扩展的POSIX正则表达式。