2011-06-06 89 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:]])的味道。