如何在 grep 中使用非貪婪正規表示式?

如何在 grep 中使用非貪婪正規表示式?

頁面說正規表示式中的任何乘數都可以帶有“?”後綴進行非貪婪搜索。但是,我不知道如何讓它在 grep 中工作。

grep -E '^.*?$' file

列印全文。

如何使用 grep 進行非貪婪的正規表示式搜尋?

答案1

您需要grepPCRE(Perl 相容正規表示式)支援。例如,GNUgrep有這個——可以透過該-P選項來利用。還有一個名為 的獨立程序pcregrep,可以透過常規打包安裝在許多系統上。

請注意,-E啟用不支援令牌非貪婪匹配的 ERE(擴展正規表示式)?

因此,使用 GNUgrep你可以這樣做:

grep -Po '^.*?foo' file

從一開始就匹配(並提取)到第一個foo

相關內容