如何在Eclipse的find / replace中使用正则表达式来重构代码

时间:2011-05-11 16:05:24

标签: regex eclipse replace

我仍在开发我的正则表达式技能,所以我依靠社区。我说我想用“Eclipse”重构代码,但是我使用了许多IDE,其搜索和替换函数接受正则表达式。我已成功创建通用表达式来查找内容,但想知道我是否可以采用部分匹配模式并在替换值中使用。例如,我有很多用以下模式命名的测试函数“”testSomeFunction1(),testSomeFunction2(),testAnotherFunction()“我真的希望它们被命名为”test_someFunction1(),test_someFunction2(),test_anotherFunction() “。查找:是”测试[AZ]“,但是我用什么替换为:?”test_ [az]“实际上是替换?也许,我不能在替换中使用正则表达式语句?

2 个答案:

答案 0 :(得分:15)

对于您发布的示例文本,查找表达式应为test([a-z]*),替换应为test_$1

这使用$i引用的捕获组,其中i是捕获的组索引(0是整个表达式)。您可能还想考虑搜索字符串的大小写,因为如果搜索不区分大小写,permuteString之类的文本也会匹配表达式。

您还应该能够在Find/Replace对话框的文本字段中使用内容辅助,以查看正则表达式可用的选项(一旦选中了Regular expressions的复选框) - 按 CTRL + SPACE

答案 1 :(得分:6)

请务必查看\ C正则表达式运算符,我认为该运算符特定于Eclipse。它在大写,小写和camelCase变体中替换相同的单词节省了大量的工作。例如,如果原始文本是:

   SomeObject someObject = SOMEOBJECT;

然后执行“全部替换”替换

    someObject

    \CanotherObject

会得到你:

    AnotherObject anotherObject = ANOTHEROBJECT;

这可能是你想要的。