如何在 grep 中使用非贪婪正则表达式?

如何在 grep 中使用非贪婪正则表达式?

页面说正则表达式中的任何乘数都可以带有“?”后缀进行非贪婪搜索。但是,我不知道如何让它在 grep 中工作。

grep -E '^.*?$' file

打印全文。

如何使用 grep 进行非贪婪的正则表达式搜索?

答案1

您需要grepPCRE(Perl 兼容正则表达式)支持。例如,GNUgrep有这个——可以通过该-P选项来利用。还有一个名为 的独立程序pcregrep,可以通过常规打包安装在许多系统上。

请注意,-E启用不支持令牌非贪婪匹配的 ERE(扩展正则表达式)?

因此,使用 GNUgrep你可以这样做:

grep -Po '^.*?foo' file

从一开始就匹配(并提取)到第一个foo

相关内容