Intellij 正则表达式查找和替换

Intellij regex to find and replace

我需要在 Intellij 中使用正则表达式找到以下文本

messageSource.getMessage("error1.test1",null, null)
messageSource.getMessage("error2.test2",null, null)
messageSource.getMessage("error3.test3",null, null)
messageSource.getMessage("error4.test4",null, null)
messageSource.getMessage("success",null, null)
messageSource.getMessage("error",null, null)

我需要将其替换为以下内容

messageSource.getMessage("error1.test1",null, Locale.ENGLISH)
messageSource.getMessage("error2.test2",null, Locale.ENGLISH)
messageSource.getMessage("error3.test3",null, Locale.ENGLISH)
messageSource.getMessage("error4.test4",null, Locale.ENGLISH)
messageSource.getMessage("success",null, Locale.ENGLISH)
messageSource.getMessage("error",null, Locale.ENGLISH)

注意:这些只是一些示例,但整个项目中有数百行代码。 error1.test1, success 这些文本可以带 . (点)或不带点,不涉及 numerics (仅字母)

我有点累了,但没能完全完成 messageSource.getMessage\(\"[a-zA-Z]*.[a-zA-Z]*",[null]*,[null]*

您可以在正则表达式模式下尝试以下查找和替换:

Find:    messageSource.getMessage\(\s*(\S+?)\s*,\s*null\s*,\s*null\s*\)
Replace: messageSource.getMessage(, null, Locale.ENGLISH)

似乎结构搜索和替换在这里工作得很好 (Edit | Find | Replace Structurally)。 您的用例的示例模板:

<replaceConfiguration name="Whosebug" text="messageSource.getMessage(&quot;$text$&quot;,null, null)" recursive="false" type="JAVA" pattern_context="default" search_injected="false" reformatAccordingToStyle="false" shortenFQN="false" replacement="messageSource.getMessage(&quot;$text$&quot;,null, java.util.Locale.ENGLISH)" case_sensitive="true">
  <constraint name="__context__" within="" contains="" />
  <constraint name="text" within="" contains="" />
</replaceConfiguration>

在对话框中使用 Import Template from Clipboard 操作。