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