2011-06-06 92 views
5

我有一個具有一般形式爲字符串刪除VIM

number,number,string 

一個文件,我想從每行刪除這兩個數字,而只提取字符串。正則表達式是什麼?

回答

12

您可以使用:

:s/^[0-9]*,[0-9]*,// 

整個文件,這就是:

:%s/^[0-9]*,[0-9]*,// 
+0

謝謝.. !!我一直忘記'^'...感謝隊友.. :) – 2011-06-06 12:34:03

+0

@Prasanth Madhavan接受答案,如果它可以幫助你表達謝意:) – 2011-06-06 13:35:21

+2

我只想補充一點,你可以使用'\ d'而不是'[0-9]'如果你願意。有很多這樣的快捷鍵可以使正則表達式更容易閱讀,特別是在vim瘋狂的正則表達式世界中。你可以得到一些vim在':help/\ i'下支持的列表。 – 2011-06-06 17:30:30

2

一個很好的正則表達式可能是:

/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}/ 

這將匹配號碼,包括一個可選符號和可選的小數點(假設您在您的語言環境中使用.),後跟逗號和該行開始處的可選空白符兩次。

用法:

:%s/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}// 

添加十六進制數字([[:xdigit:]])的味道。