在 grep 中使用 Perl 兼容正则表达式 (PCRE) 的修饰符

在 grep 中使用 Perl 兼容正则表达式 (PCRE) 的修饰符

根据grep --helpman 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

相关内容