在vs2013中使用正则表达式查找和替换文本内容

来源:互联网 发布:大司马杂货铺淘宝店 编辑:程序博客网 时间:2024/05/17 21:05

        我们有的时候需要替换代码中的某些内容,因为替换的内容“不一致”,所以不能简单的使用一个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[],保留中括号内部的文字。


0 0
原创粉丝点击