根据grep --help
和man grep
,我们可以使用-P
选项将模式解释为 Perl 正则表达式(准确地说是 PCRE),而不是默认的POSIX 基本正则表达式(英国建筑条例)。
在 Perl 语言中,各种修饰符可以添加到表达式中,以便调整模式解释(在的语法中/pattern/modifiers
)。
所以,如何添加修饰语到 grep 的 Perl 正则表达式?我尝试了一些类似的变体,grep -P "/^got.it$/ms" [FILE]
但搜索结果是错误的。
然而,关于PCRE的解释,手册指出:
这是高度实验性的,grep -P可能会警告未实现的功能。
grep 工具是否可能根本不支持修饰符?
顺便说一句,我注意到可以使用选项执行不区分大小写的模式匹配-i
,这是一个修饰符的示例。
答案1
对于修饰符,imsxadlup
你可以使用(?X)
for ,如中所述扩展模式:
$ echo FOO | grep -P '(?i)foo'
FOO