我猜它不是Perl兼容的正则表达式,因为有一种特殊的grep
,特别是PCRE。什么是grep
最相似的?
我需要知道grep
有什么特殊的怪癖吗? (我习惯于Perl和PHP中的preg
函数)
答案 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)
您可以比较各种口味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正则表达式。