2013-11-22 68 views
2

如何將&&&&&&&&&替換爲&?我已嘗試:%s/&&&&&&&&&/&/g但我只獲得更多&簡單替代

+2

有關':s'命令的更多信息,請參見:':h:s',':h:s_flags',':h:s \ ='。討論'&'的具體主題可以在這裏找到:':h s/\&'。 –

回答

5

因爲&是在更換部分特(它的意思是「整個匹配的字符串」),你要逃避它:(注意在更換部分&前反斜線)

:%s/&&&&&&&&&/\&/g 

4

你需要逃避&\在替換字符串

:%s/&&&&&&&&&/\&/g 

在替換字符串中,&具有特殊含義幷包含匹配的字符串。

因此,在你的情況下,你只是取代了自己,因此沒有任何改變。


如果你的內涵是一個來替代多個&,然後嘗試以下

:%s/&\+/\&/g 
4

必須逃避替換部分&。非轉義,&指整個比賽。

:%s/&&&&&&&&&/\&/g 
-3

你需要表達的量詞:

:%s/&\+/&/g 

,如果不知道它的工作原理是,在VIM,它是默認的正則表達式中,加號告訴它應該可以捕捉到一個或多個的任意組合'&'標誌,使用& {9}應該精確地找到9個

+1

-1:在發佈4個正確答案之後,不需要發佈不正確的答案... ;-) –

+0

答案如何不正確?表達效果很好,比其他四個更通用?其中一個編輯包含我的解決方案?我不配這些-1 :( 但是,嘿,如果它讓你感覺更好,爲你+1。.... – Daan