我使用-P选项来查找电话号码列表。使用此选项我的结果非常好,但没有它就不会返回列表。 grep man page表示使用-P将'将PATTERN解释为Perl正则表达式'。因为我不知道Perl,我只是学习grep和regex,这对我来说没什么意义。
有一个简单的解释吗?
答案 0 :(得分:1)
grep
可以使用3组正则表达式:
所有这些概念之间的一些概念是相同的。例如,[a-z]
或[^0-9]
等字符类在所有字符类中都是相同的。另一方面,(
与\(
的含义,或|
或+
或|
具有特殊意义,取决于常规类别表达式。
这是一个很大的话题;太大了,无法轻易覆盖SO答案。要了解更多信息,请查看Jeff Freidl的Mastering Regular Expressions书籍,以及正则表达式差异集的文档。
答案 1 :(得分:0)
如果没有-P
选项grep
将模式解释为基本正则表达式,则它们之间存在很大差异,例如使用.
,?
等元字符或|
。你必须调整你的正则表达式。