在Visual Studio 2003下搜索并替换正则表达式

时间:2010-02-25 10:50:07

标签: c++ visual-studio regex

我有一个庞大的C ++代码库,我正在做一些重构,因为许多函数已经变得多余,因此应该删除。所以我想替换

MyFunc(Param)

Param

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

MyFunc/({+}/(

和替换参数只是

/1

但是这给了我模式中的语法错误。我是新手,在visual studio下搜索和替换正则表达式。以上容易实现吗?我已经看过这个网站上的类似问题,这表明我大致走在正确的轨道上,但似乎错过了一些东西。

编辑:如果您可以回答上述情况,那么它是否属于类干扰的一部分,例如

MyClass.MyFunc(Param) 

MyClass->MyFunc(Param)

(FWIW,我还拿了一份VisualAssist,希望它可以做到这一点,但它似乎无法处理这种情况。)

第二次修改:感谢Joe的正确回复,但对于其他使用此方法的人,请注意一些陷阱,

MyFunc(MyArray[MyOtherFunc(x)])

结束为

MyArray[MyOtherFunc(x])

MyFunc((SomeType)x)

结束为

(SomeTypex)

在进行搜索和替换之前进行搜索以检查所获得的内容时,请确保将修改后的文件保持打开以防需要撤消,并在启动之前备份源文件,这样做效果很好。即使列出了陷阱,仍然可以节省大量时间。

1 个答案:

答案 0 :(得分:2)

请改为尝试:

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

您的斜杠是错误的方法,括号中的表达式({+})无效。

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