Regex 使用eclipse查找并替换所有参数来交换参数
我有大约100行,如下所示: assertEquals(results.get(0.getID(),1) 它们都以assertEquals开头,并包含两个参数。我正在寻找一种使用find和replaceall来交换所有这些行的参数的方法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(后跟第一组字符,后跟逗号,后跟第二组字符,后跟“);” 替换值的
感谢使用以下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) {...}