如何在 PhpStorm 中用正则表达式替换文本

How to replace text with Regular Expressions in PhpStorm

网上一堆错误的例子,都不行

在我的 1000 个文件和 100 个文件夹的面向对象 WordPress/Php 插件项目中,我需要替换所有语言常量,例如:

NRS_PHRASE1_TEXT

动态语言方法调用,例如:

$this->lang->getText('NRS_PHRASE1_TEXT')

这里必须使用正则表达式,以节省工作时间。但是 PhpStorm 文档没有为您提供如何操作的教程,并且 Google 和 Whosebug 充满了错误或 90% 正确(而非 100%)的答案。因此,我制作本教程是为了为您节省时间,这样您就无需花一个小时进行实验,同时就能正确使用。请参阅本主题中的答案,作为我的教程。

要替换 PhpStorm 8、PhpStorm 9 和更新版本中的文本,也可能在 WebStorm 10 中替换文本,请打开您的项目,右键单击要替换代码的插件文件夹,select 'Replace in Path'选项。按照下面的教程进行操作。

替换 FROM => TO:

NRS_PHRASE1_TEXT => $this->lang->getText('NRS_PHRASE1_TEXT')
NRS_PHRASE_TWO_TEXT => $this->lang->getText('NRS_PHRASE_TWO_TEXT')

搜索select此搜索模式:

正则表达式

在 "SEARCH" 字段值中输入此短语:

NRS_([A-Z_0-9]+)_TEXT

在 "REPLACE" 字段值中输入此短语:

\$this->lang->getText('NRS__TEXT')

在“搜索”字段中,开始输入描述所有标题属性的正则表达式。请注意,虽然正则表达式 \stitle=".?"\s[/>]* 匹配 title 属性的内容,但建议捕获组以在 Replace 中引用它们场地: \stitle="(.)?"\s(/>*) 请注意,对于正则表达式,替换预览显示在工具提示中。

See here