2014-02-15 56 views
1

我有一個日期列表(YYYY-M或YYYY-MM)並且希望在前9個月前爲0加上前綴以保持一致性。數據格式:日期爲YYYY-M或YYYY-MM,後跟逗號和數字。 如:Vim正則表達式給出錯誤的輸出

2012-1,789 
2012-11,563 

2012-1,789應改爲2012-01,789。條目「2012-11,563」應保持不變。

正確的輸出應該是:

2012-01,789 
2012-11,563 

我試着按照Vim的正則表達式。

:%s/-\(\d\),/-0\0,/g 

不過,我得到以下輸出:

2012-0-1,789 
2012-11,563 

爲什麼會出現兩個數字之間的額外破折號-

回答

2

捕獲組編號從1開始,而不是從0開始。

所以命令應該是:

:%s/-\(\d\),/-0\1,/g 
+0

什麼是組0代表什麼? – Ajax

+0

@Ajax,組0 =整個匹配的字符串。 – falsetru

+0

謝謝!有效 :) – Ajax