我有一个庞大的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)
在进行搜索和替换之前进行搜索以检查所获得的内容时,请确保将修改后的文件保持打开以防需要撤消,并在启动之前备份源文件,这样做效果很好。即使列出了陷阱,仍然可以节省大量时间。
答案 0 :(得分:2)
请改为尝试:
查找= MyFunc\({[^\)]*}\)
替换= \1
您的斜杠是错误的方法,括号中的表达式({+}
)无效。
这对包含函数调用或括号的其他用法的参数不起作用 - 使用正则表达式无法解决平衡括号匹配问题。