我还在开发我的正则表达式技能,所以我依靠社区.我说我想用"Eclipse"重构代码,但是我使用了许多IDE,其搜索和替换函数接受正则表达式.我已成功创建通用表达式来查找内容,但想知道我是否可以采用部分匹配模式并在替换值中使用.例如,我有很多用以下模式命名的测试函数""testSomeFunction1(),testSomeFunction2(),testAnotherFunction()"我真的希望它们被命名为"test_someFunction1(),test_someFunction2(),test_anotherFunction() ".查找:是"测试[AZ]",但我用什么替换为:?"test_ [az]"实际上是替换?也许,我不能在替换中使用正则表达式语句?
no.*_*ing 15
对于您发布的示例文本,查找表达式应该是test([a-z]*),而替换应该是test_$1.
这使得捕获的组所使用的捕获组$i在哪里i被捕获的组索引(0是整个表达式).您可能还需要考虑搜索字符串的大小写,因为permuteString如果搜索不区分大小写,则text like 也会匹配表达式.
您还应该能够在Find/Replace对话框的文本字段中使用内容辅助来查看正则表达式可用的选项(一旦选中了复选框Regular expressions) - 按CTRL+SPACE
一定要查看\ C正则表达式运算符,我认为这是特定于Eclipse的.它在大写,小写和camelCase变体中替换相同的单词节省了大量的工作.例如,如果原始文本是:
SomeObject someObject = SOMEOBJECT;
Run Code Online (Sandbox Code Playgroud)
然后做一个"全部替换"替换
someObject
Run Code Online (Sandbox Code Playgroud)
同
\CanotherObject
Run Code Online (Sandbox Code Playgroud)
会得到你:
AnotherObject anotherObject = ANOTHEROBJECT;
Run Code Online (Sandbox Code Playgroud)
这可能是你想要的.