2010-02-25 125 views
0

我有一个很大的C++代码库,我正在做一些重构,其中一些函数已经变得多余,因此应该删除。所以,我想更换在Visual Studio 2003下搜索并用正则表达式替换

MyFunc(Param) 

Param 

其中,param可以是一个字面值,变量,函数调用等等......从在线帮助我收集的搜索参数应该是

MyFunc/({+}/(

和替换参数只是

/1 

但是这给了我一个语法错误在我的模式。我是新来的搜索和视觉工作室下的正则表达式替换。上述可以轻松实现吗?我曾在这个网站上看过类似的问题,这表明我大致在正确的轨道上,但似乎缺少一些东西。

编辑:如果你可以回答上述问题,那么如果它是类别尊重的一部分,

MyClass.MyFunc(Param) 

MyClass->MyFunc(Param) 

(FWIW,我也拿起VisualAssist的副本,希望它可以做到这一点,但它似乎没有能够处理这种情况)。

第二个编辑:感谢Joe正确的回应,但对于其他人使用这种方法,提防一些陷阱,

MyFunc(MyArray[MyOtherFunc(x)]) 

最终成为

MyArray[MyOtherFunc(x]) 

MyFunc((SomeType)x) 

结束为

(SomeTypex) 

一旦你做一个搜索,检查你得到了什么做了搜索之前和更换,一定要保持修改的文件打开你需要撤销案件,并备份开始前,你的源文件,这个效果很好足够。即使列出了陷阱,仍然是一个巨大的时间节省。

回答

2

试试这个:

查找= MyFunc\({[^\)]*}\) 更换= \1

你的斜杠是围绕着错误的方式,并在括号中的表达式({+})是无效的。

这对包含函数调用或其他括号使用的参数不起作用 - 平衡括号匹配问题不能用正则表达式解决。

+0

非常感谢乔,工作就像一个魅力。 – 2010-02-25 10:59:21

相关问题