vs中在查找替换中使用正则表达式
2009-11-04 17:10
651 查看
在写程序时,如果一开始没有考虑到可移植性,把字符串都写成了:
"hello,world!"
到了后面,想把大量的这里字符串替换成:
_T"hello,world!"
这该如何是好呢,作为一个合格的程序员,请不要一个个的改,不然会被人鄙视的...
而在vs中,提供了简单解决这玩意的方法,事实上也不简单,我查了一个小时才学会的。
关键就是正则表达式,关于正则表达式,以下有一篇很好的正则表达式入门:
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
注意:这个教程中的正则表达式和vs中有不少差别,主要是元字符等等。
了解了正则表达式后,打开vs的查找替换,点开查找选项->使用,在combobox中选正则表达式,好了,这样就可以使用正则表达式了。
在查找框中输入:{"[^"]*"}
在替换框中输入:_T/1
我们的任务就结束了,如果你看了上面那篇文章,那么说明一下,在vs中,{}代表分段,而不是()。
另外一个例子:
将使用wxWidgets的程序移植到mfc时,经常会遇到这样的表达式:
wx_static(void*, ptr);
其实就相当于(void*)ptr。
在查找框中输入: wx_static_cast{/(.*},{.*}/)
替换框中输入: /1/)/2
其实,更清晰的方式应该是这样的:
在查找框中输入: wx_static_cast/({.*},{.*}/)
替换框中输入: /(/1/)/2
但是很奇怪的,vs无法替换成以/(开头的标识。
显然()需要用转义输入,而.*代表了任意字符串。
然而,上面的代码在实践中却是不可行的!!!
看似正确的背后,隐藏着重重"胸肌"....
正确的做法应该是在写完了正则表达式后,进行良好的测试,再进行运用,比如,上面的例子的一个比较可用的版本是:
在查找框中输入: wx_static_cast{/([^,()]*},{[^(),]*}/)
替换框中输入: /(/1/)/2
可能不是很好理解,但是他的排他性在我的实际情况中已经够用了,很可能的是,在其他的情况下他还是不够的,那就需要进一步的完善,所以,我的经验是,使用正则表达式,应该根据实际情况来进行,不可盲目自信,也不可轻易放弃,一切从实际出发...
"hello,world!"
到了后面,想把大量的这里字符串替换成:
_T"hello,world!"
这该如何是好呢,作为一个合格的程序员,请不要一个个的改,不然会被人鄙视的...
而在vs中,提供了简单解决这玩意的方法,事实上也不简单,我查了一个小时才学会的。
关键就是正则表达式,关于正则表达式,以下有一篇很好的正则表达式入门:
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
注意:这个教程中的正则表达式和vs中有不少差别,主要是元字符等等。
了解了正则表达式后,打开vs的查找替换,点开查找选项->使用,在combobox中选正则表达式,好了,这样就可以使用正则表达式了。
在查找框中输入:{"[^"]*"}
在替换框中输入:_T/1
我们的任务就结束了,如果你看了上面那篇文章,那么说明一下,在vs中,{}代表分段,而不是()。
另外一个例子:
将使用wxWidgets的程序移植到mfc时,经常会遇到这样的表达式:
wx_static(void*, ptr);
其实就相当于(void*)ptr。
在查找框中输入: wx_static_cast{/(.*},{.*}/)
替换框中输入: /1/)/2
其实,更清晰的方式应该是这样的:
在查找框中输入: wx_static_cast/({.*},{.*}/)
替换框中输入: /(/1/)/2
但是很奇怪的,vs无法替换成以/(开头的标识。
显然()需要用转义输入,而.*代表了任意字符串。
然而,上面的代码在实践中却是不可行的!!!
看似正确的背后,隐藏着重重"胸肌"....
正确的做法应该是在写完了正则表达式后,进行良好的测试,再进行运用,比如,上面的例子的一个比较可用的版本是:
在查找框中输入: wx_static_cast{/([^,()]*},{[^(),]*}/)
替换框中输入: /(/1/)/2
可能不是很好理解,但是他的排他性在我的实际情况中已经够用了,很可能的是,在其他的情况下他还是不够的,那就需要进一步的完善,所以,我的经验是,使用正则表达式,应该根据实际情况来进行,不可盲目自信,也不可轻易放弃,一切从实际出发...
相关文章推荐
- 在 VS 中查找替换时使用正则表达式的语法
- VS 2005/2008 开发工具中 使用正则表达式查找替换的使用说明
- VS中使用正则表达式进行查找替换
- VS.net 中,使用正则表达式进行查找、替换
- VS.net IDE中,使用正则表达式进行查找、替换
- vs 2012/2013 等工具中,使用正则表达式,查找、替换
- 使用VS正则表达式查找替换,批量修改Reflactor生成的代码问题
- 在 VS 中查找替换时使用正则表达式的语法
- Vim查找替换及正则表达式的使用
- Vs 正则表达式 查找替换 微软权威参考
- Excel 中使用正则表达式进行查找与替换
- 在 Excel 中使用正则表达式进行查找与替换
- Word中使用正则表达式进行查找和替换与难题征解
- Visual Studio“查找和替换”窗口"快速替换"使用正则表达式和通配符.快速智能高效替换.可用的通配符和表达式
- Word中使用正则表达式进行查找和替换
- 在PHP中使用正则表达式进行查找替换
- Word中使用正则表达式进行查找和替换
- Myeclipse中使用正则表达式查找替换
- 在DW中使用正则表达式查找替换
- 在vs2013中使用正则表达式查找和替换文本内容