Regex 使用eclipse查找并替换所有参数来交换参数

Regex 使用eclipse查找并替换所有参数来交换参数,regex,eclipse,replace,Regex,Eclipse,Replace,我有大约100行,如下所示: assertEquals(results.get(0.getID(),1) 它们都以assertEquals开头,并包含两个参数。我正在寻找一种使用find和replaceall来交换所有这些行的参数的方法 感谢使用以下regexp查找: assertEquals\((.*),(.*)\); 这个重置价值是: assertEquals(\2,\1); regexp的意思是“assertEquals(后跟第一组字符,后跟逗号,后跟第二组字符,后跟“);” 替换值的

我有大约100行,如下所示:

assertEquals(results.get(0.getID(),1)

它们都以assertEquals开头,并包含两个参数。我正在寻找一种使用find和replaceall来交换所有这些行的参数的方法


感谢使用以下regexp查找:

assertEquals\((.*),(.*)\);
这个重置价值是:

assertEquals(\2,\1);
regexp的意思是“assertEquals(后跟第一组字符,后跟逗号,后跟第二组字符,后跟“);”


替换值的意思是“assertEquals(后面是找到的第二组字符,后面是逗号,后面是找到的第一组字符);”

我不知道如何在Eclipse中执行此操作,但是如果您碰巧也安装了
vim
,您可以在其中加载文件并执行此操作

:%s/\(assertEquals(\)\(.*\),\(.*\))/\1\3,\2)/

如果您发现自己经常在方法声明中交换参数顺序,我会找到一个插件,只需单击一下就可以完成

此插件向Eclipse Java编辑器添加了两个工具栏按钮:

插入符号位于| in:

void process(int age, String |name, boolean member) {...}
单击“向前交换”按钮可生成:

void process(int age, boolean member, String |name) {...}
或单击“向后交换”按钮与原始源进行交换,得到:

void process(String |name, int age, boolean member) {...}


您还可以使用Eclipse内置的方法签名重构来重新排序参数

在从JUnit转换为TestNG的情况下(看起来您正在这样做),您可以将org.TestNG.Assert复制到项目中,并重构assertXYZ方法以转换预期/实际参数

完成后,删除org.testng.Assert的副本

assertEquals\(.*)、\s*(.*)

并替换为

assertEquals(\2\1)

对不起,我的回答多少有些夸张。但它确实对我更有效,我认为对其他人也是如此。
我对第一篇文章的编辑被拒绝。

这很接近,但它不处理
assertEquals(“a”,methodCall(a,b))。它将其转换为
assertEquals(b),“a”,methodCall(a)而不是
assertEquals(方法调用(a,b),“a”)
void process(String |name, int age, boolean member) {...}