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

Ref*_*ion 25 regex grep perl

根据grep --helpman grep,我们可以使用该-P选项将模式解释为 Perl 正则表达式(准确地说是 PCRE),而不是默认的POSIX 基本正则表达式(BRE)。

在 Perl 语言中,可以在表达式中添加各种修饰符,以调整模式解释(在 的语法中/pattern/modifiers)。

那么,如何为 grep 的 Perl 正则表达式添加修饰符呢?我尝试了一些变体,grep -P "/^got.it$/ms" [FILE]但搜索结果是错误的。

但是,关于PCRE的解释,手册指出:

这是高度实验性的,grep -P可能会警告未实现的功能。

grep 工具是否可能根本不支持修饰符

顺便说一句,我注意到可以通过使用-i选项来执行不区分大小写的模式匹配,这是一个修饰符的例子。

Flo*_*sch 24

对于修饰符,imsxadlup您可以使用(?X)for 如扩展模式中所述

$ echo FOO | grep -P '(?i)foo'
FOO
Run Code Online (Sandbox Code Playgroud)