我有大约100行,如下所示:
的assertEquals(results.get(0).getID(),1);
它们都以assertEquals开头并包含两个参数。我正在寻找一种方法来使用find和replace all来交换所有这些行的参数。
由于
答案 0 :(得分:22)
使用以下正则表达式查找:
assertEquals\((.*),(.*)\);
和此替换值:
assertEquals(\2,\1);
regexp表示“assertEquals(后跟第一组字符后跟逗号,后跟第二组字符后跟);”。
替换值表示“assertEquals(后面跟着第二组字符,后面跟着一个逗号,后面跟着第一组字符);”。
答案 1 :(得分:0)
我不知道如何在Eclipse中执行此操作,但如果您碰巧安装了vim
,则可能会将文件加载到其中并执行
:%s/\(assertEquals(\)\(.*\),\(.*\))/\1\3,\2)/
答案 2 :(得分:0)
如果您发现自己经常在方法声明中交换参数顺序,我找到了一个插件,只需单击即可为您完成。
此插件向Eclipse Java编辑器添加了两个工具栏按钮:
Swap backward Swap forward
插入符号|在:
void process(int age, String |name, boolean member) {...}
单击“交换前进”按钮会产生:
void process(int age, boolean member, String |name) {...}
或单击使用原始源生成的向后切换按钮:
void process(String |name, int age, boolean member) {...}
答案 3 :(得分:0)
您还可以使用Eclipse的内置方法签名重构来重新排序参数。
如果从JUnit转换为TestNG(这就是你正在做的事情),你可以将org.testng.Assert复制到你的项目中并重构assertXYZ方法来转置期望/实际的参数。 / p>
完成后,删除org.testng.Assert
的副本答案 4 :(得分:0)
搜索
assertEquals\((.*),\s*(.*)\);
并替换为
assertEquals(\2, \1);
抱歉,这个答案或多或少。但这对我来说确实更好,我也认为对其他人也更好。 我对第一篇文章的编辑被拒绝了。