标签:
我们有的时候需要替换代码中的某些内容,因为替换的内容“不一致”,所以不能简单的使用一个replace搞定。这里有几个解决方法,核心思想是一致的,程序员不要做体力活,能交给程序或脚本的就交给程序或脚本来完成。
我先提一个替换的需求,这个在实际工作中是很常见的。比如
把所有的toke[TOKEN_ENUM_ATTACK], token[TOKEN_ENUM_MAGIC]这样的字符串替换为TOKEN_ENUM_ATTACK, TOKEN_ENUM_MAGIC,也就是说去掉token[],直接使用枚举值。
再比如,把所有的"字符串"替换为_T("字符串")。这个很常见,涉及到unicode和ansi的时候必然要被这东西恶心一遍。
替换方法:
1、使用脚本。这个最灵活,当然成本相对来说也有些大。我有点害怕一不留神脚本写错了就把我的所有文件都干掉了。
2、使用高级些的文本编辑器。比如sublime text就支持正则表达式的替换。你需要先把文件夹加入到workspace中。
3、vs自带正则表达式的查找和替换。由于vs2013跟之前语法略有差异,网上很多都是旧的,所以这里重点介绍下。
如上图所示,勾上 Use Regular Expressions就可以使用了,非常简单。如果正则表达式还不太熟,可以点击文本框旁边的那个(a)+按钮。它列出了所有常用的表达式形式。
这里使用了捕获相关,网上常见的说法是使用大括号,但是在vs2013中是使用小括号来定义捕获内容,这个捕获规则是跟python一致的。比如 token\[(.*)\]就是把中括号内部的东西全部捕获。而替换的时候可以使用$1来代表捕获内容。于是上面的替换就代表去除token[],保留中括号内部的文字。
标签:
原文地址:http://blog.csdn.net/langresser_king/article/details/42104643