Intellij Idea 为捕获的组给予一个值,并在intellij的replace函数中使用它

cpjpxq1n  于 2023-06-21  发布在  其他
关注(0)|答案(2)|浏览(130)

我正在尝试用intellij中的正则表达式翻译我的一些方法和字段名。特别是我正在努力实现这样的东西:

public class SomeClass {
  
  private String italianNameField;

  public void setItalianNameField(String italianNameField) {
    this.italianNameField = italianNameField;
  }

}

成为

public class SomeClass {
  
  private String englishNameField;

  public void setEnglishNameField(String englishNameField) {
    this.englishNameField = englishNameField;
  }

}

到目前为止,我正则表达式看起来像这样:
(public void set)ItalianFieldName(\(String )italianFieldName(\) \{ this.)italianFieldName( = )italianFieldName(; \}),并在替换字段中输入$1EnglishNameField$2englishNameField$3englishNameField$4englishNameField$5
我想知道是否有可能创建一个变量并使用它,类似这样:

var1 = englishName
public void set\Lvar1(String var1) { this.var1 = var1; }

并可能同时更改字段名称

cnwbcb6i

cnwbcb6i1#

另一种实现预期结果的方法:

  • 将光标指向private String italianNameField并按Shift + F6以调用重构操作:

  • 将其重命名为englishNameField,然后按Enter键

  • 将自动显示Setters/Getters重构的附加对话框:

  • 单击确定

qzlgjiam

qzlgjiam2#

您可以替换:

italiannamefield\b

...与:

englishNameField

\b表示字边界。IntelliJ默认不区分大小写地匹配正则表达式;它还将在启用 * Preserve case * 选项(Alt + E)的情况下为您正确处理 shell 零件。
正则表达式匹配会影响所有内容,从代码到注解和文本。但是,请注意,这很容易出错,除非您愿意手动检查所有替换,否则不建议使用此方法。
试试看:

相关问题