Intellij 正则表达式查找和替换

发布于 2025-01-17 22:36:28 字数 1001 浏览 1 评论 0原文

我需要在 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.test1success 这些文本可以带有 . (点)或不带点,不涉及任何数字(只有字母)

我有些累了,但无法完全完成 messageSource.getMessage\(\"[a-zA-Z]*.[a-zA-Z]*",[null]*,[null]*

I need below text to be find by using regex in 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)

I need this to replace with below

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)

Note: These are just some examples, but hundres of lines are there across the project. error1.test1, success these texts can be with . (dot) or without dot , no numerics involved (only alphabets)

I tired to some extend, but couldn't finish exactly
messageSource.getMessage\(\"[a-zA-Z]*.[a-zA-Z]*",[null]*,[null]*

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤君无依 2025-01-24 22:36:28

您可以尝试以下以下查找并替换,以正则模式:

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

You may try the following find and replace, in regex mode:

Find:    messageSource.getMessage\(\s*(\S+?)\s*,\s*null\s*,\s*null\s*\)
Replace: messageSource.getMessage($1, null, Locale.ENGLISH)
过气美图社 2025-01-24 22:36:28

看起来像结构搜索和结构搜索。替换在这里效果很好(编辑|查找|结构替换)。
您的用例的示例模板:

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

使用对话框中的从剪贴板导入模板操作。

Seems like Structural Search & Replace would work well here (Edit | Find | Replace Structurally).
Example template for your use case:

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

Use the Import Template from Clipboard action in the dialog.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文