使用正则表达式更改大量代码 我在C++中有一个函数: void createForm(Form*& form,string name,int code)
在我的项目中,有数百个对该函数的调用:使用正则表达式更改大量代码 我在C++中有一个函数: void createForm(Form*& form,string name,int code),c++,regex,eclipse,C++,Regex,Eclipse,在我的项目中,有数百个对该函数的调用: createForm(foo,"a",0x2020); 现在我想把这句话改成: 也就是说,该函数的第二个参数成为comment。我根本不需要这个参数 如果有人能给我一个神奇的正则表达式,让我一下子做出这个改变的话?提前谢谢。 顺便说一句:我正在使用eclipse。打开“文件搜索”对话框,可以在eclipse菜单中的“搜索”->“文件…”下找到该对话框。打开正则表达式模式(复选框) 模式: createForm\((\w+),(".*?"),(\w+)\)
createForm(foo,"a",0x2020);
现在我想把这句话改成:
也就是说,该函数的第二个参数成为comment。我根本不需要这个参数
如果有人能给我一个神奇的正则表达式,让我一下子做出这个改变的话?提前谢谢。
顺便说一句:我正在使用eclipse。打开“文件搜索”对话框,可以在eclipse菜单中的“搜索”->“文件…”下找到该对话框。打开正则表达式模式(复选框)
模式:
createForm\((\w+),(".*?"),(\w+)\);
替换:
createForm($1,$3);//$2
很简单,我们捕获捕获组中的三个参数(括号中),并使用$x
模式引用这些捕获组
此模式假定第二个参数始终是不带引号的字符串文本
“
s和其他两个参数是标识符或数字。如果不是这样,请告诉我。您是否使用linux?或者你有没有安装cygwin?你可以用find+sedhow来打开正则表达式模式?@AvinashRaj:见我答案的顶部。这是文件搜索对话框中的一个复选框。[^”]
而不是第二个参数的
。@Geoffroy:那没什么区别。我使用了不情愿的量词*?
(一开始忘记了*
),它也有同样的作用。哇!这真是个魔术!它对我有效!非常感谢!
createForm($1,$3);//$2