2017-06-02 137 views
1

我在看一條線我編打開的文件,並顯示與.p非貪婪正則表達式匹配

First sentence. Another. One. Text continues

現在我想用replacement.替換字符串First sentence.但是,命令

.s/.*\./replacement./

作用在貪婪方式,即,它取代First sentence. Another. One.通過replacement,而不是強制根據需要t First sentence.

如何在ed中做非貪婪替換?

+1

這已被問了很多次。提示:非貪婪的匹配(如'。*?')是你的朋友。在這種情況下更好的是一個排他字符類,比如'[^。] *'。 –

回答

1

我不知道如果ed支持非貪婪的匹配,但假設它不會:

要匹配除一個點的一切。

.s/[^.]*\./replacement./ 
+0

輝煌 - 謝謝! –

+1

請注意,'.'不會跨越換行符(它是*「每個字符,而是'\ n'」*,真的),而'[^。]'*當然會很快匹配跨越換行符。這可能不是'ed'的問題,但它可能會導致在其他情況下意外的結果。 – Tomalak