Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式更改大量代码 我在C++中有一个函数: void createForm(Form*& form,string name,int code)_C++_Regex_Eclipse - Fatal编程技术网

使用正则表达式更改大量代码 我在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