2

我即将重构我的项目,我想替换所有以“_”开头的变量名,例如private final String _name; -> private final String name;

我的 FIND the Variables 模板很简单:

$FieldName$

我为变量名设置了这个正则表达式:

[_][a-z]+

好吧,但这只会返回一个以“_”开头的变量列表,我如何去掉 _ 然后设置新的变量名?

编辑:我编辑了这个主题,所以也许 Eclipse 用户可以告诉我如何用Eclipse解决这个问题。

4

2 回答 2

3

使用 IntelliJ IDEA 的结构搜索和替换时,以下内容适用于我

使用您的搜索模板,使用以下替换模板:

$NewName$

使用脚本文本:

// FieldName refers to the Search template variable
if (FieldName instanceof com.intellij.psi.PsiVariable) {
  com.intellij.psi.PsiVariable var = (com.intellij.psi.PsiVariable) FieldName;
  var.getName().substring(1);
} else {
  String string = FieldName.getText();
  int index = string.indexOf('_');
  string.substring(0, index) + string.substring(index + 1);
}
于 2015-02-12T16:04:41.457 回答
2

您可以通过 IntelliJ 中的正则表达式在文本的基础上执行此操作

点击ctrl-shift-r打开“替换路径”。确保Regular Expression已勾选,然后输入以下内容:

要查找的文本:([_])([a-zA-Z]+)

用。。。来代替:$2

请注意,这里的一个可能问题是其他文本字符串(例如EXIT_ON_CLOSE)也可能被正则表达式拾取,并且您可能必须小心不要在这些情况下应用替换(或调整您的正则表达式更智能)。

于 2015-01-16T10:41:17.500 回答