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

时间:2011-10-10 20:32:35

标签: regex eclipse replace

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

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

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

由于

5 个答案:

答案 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

enter image description here

插入符号|在:

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

单击“交换前进”按钮会产生:

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

或单击使用原始源生成的向后切换按钮:

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

Here is the article discussing it.

Here is the jar to drop into your eclipse plugin directory.

答案 3 :(得分:0)

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

如果从JUnit转换为TestNG(这就是你正在做的事情),你可以将org.testng.Assert复制到你的项目中并重构assertXYZ方法来转置期望/实际的参数。 / p>

完成后,删除org.testng.Assert

的副本

答案 4 :(得分:0)

搜索

assertEquals\((.*),\s*(.*)\);

并替换为

assertEquals(\2, \1);

抱歉,这个答案或多或少。但这对我来说确实更好,我也认为对其他人也更好。 我对第一篇文章的编辑被拒绝了。