2009-06-22 129 views
0

我似乎無法理解正則表達式。我如何匹配駐留在START和END字符串之間的字符。對於實施例在開始字符串和結束字符串之間匹配單個字符

#START-EDIT

#值a = 0

#VALUEB = 1

#END-EDIT

我想匹配任何#這是#START之間-EDIT和#END-EDIT。

具體而言,我想用sed替換各種文件中沒有(或刪除它們)的匹配值,這些文件可能有或沒有多個START-EDIT和END-EDIT部分。

回答

1
^#START-EDIT.*(#) *. *#END-EDIT$ 
+0

組(#)任何出現一個相匹配的#和「*」,以它爲0匹配或更多出現相同的情況:)你可以根據你的要求在開始時使用'^',最後使用'$'。 乾杯 – 2009-06-22 14:29:02

+1

這應該是非貪心。 – Svante 2009-06-22 15:57:27

1

sed是基於行的。你可以很容易地搜索,在一行中替換基於正則表達式。但是,在多線上搜索/替換並不容易。 AWK可能會做到這一點。

如果你有一個行正則表達式,下面的命令可能是你在找什麼

sed -e "/^#START-EDIT.*#END-EDIT$//" myInput.txt 
相關問題