PhpStorm 2021.3 Help

使用正则表达式查找和替换文本

当您要搜索和替换特定的文本模式时,请使用正则表达式。它们可以帮助您进行模式匹配、解析、结果过滤等。一旦您学习了正则表达式语法,您几乎可以将它用于任何语言。

  1. Ctrl+R打开搜索和替换窗格。

  2. 在顶部字段中输入搜索字符串,在底部字段中输入替换字符串。

    正则表达式搜索和替换字段

    单击正则表达式图标以启用正则表达式。如果您想检查正则表达式的语法,请将鼠标悬停正则表达式图标并单击“显示表达式帮助”链接。

  3. 当您搜索包含特殊正则表达式符号的文本字符串时,PhpStorm\会在搜索字段中使用反斜杠自动对它们进行转义。

    转义正则表达式符号

    但是,当您专门搜索诸如 之类的元字符时.[{()\^$|?*+,您需要使用反斜杠对其进行转义\,以便它们能够被识别。

    例如,如果您需要查找.,请\.在搜索字段中输入。

  4. 当您在搜索字段中输入一系列字符时,PhpStorm 还可以匹配字母大小写。

    例如,如果您只想搜索大写字符,请在搜索字段中键入以下内容:

    \b[AZ]

    要搜索和替换更复杂的模式,请使用结构搜索和替换

  5. 如果匹配案例图标在搜索字段中未选中,PhpStorm 将同时搜索小写和大写。

    在搜索字段中选择匹配大小写按钮以匹配指定范围的大小写。

    匹配案例选择的结果

  6. 当您浏览匹配项时,PhpStorm 会显示替换提示,因此您可以在单击替换按钮之前查看潜在结果。

    更换提示

使用正则表达式捕获组和反向引用

您可以将正则表达式放在括号内以便对它们进行分组。每个组都有一个以 1 开头的数字,因此您可以在替换模式中引用(反向引用)它们。请注意,组 0 指的是整个正则表达式。但是,您不仅可以通过数字来引用捕获的组$n,还可以通过名称来引用捕获的组${name}

例如,对于编号的捕获组,使用以下语法:

编号的正则表达式捕获组

对于命名的捕获组,使用以下语法:

命名正则表达式捕获组

查找并替换捕获的组

让我们考虑以下代码:

<form action="" class="form-inline" method="post"> <input type="text" class="form-control" name="username" value="Username"> <input type="password " class="form-control" name="password" value="Password"> <input class="btn btn-default" type="submit" value="Login"> </form>
  1. 打开搜索和替换窗格Ctrl+R

  2. 在搜索字段中,输入()指示捕获组的括号,例如: \svalue="(.*)?"\s*(>*)

  3. 在替换字段中,按从 1 开始的数字反向引用此类组,例如: placeholder="$1"

  4. PhpStorm 根据您的搜索规范突出显示找到的匹配项,并使用替换字符串显示提示。

    替换为正则表达式结果

切换字符大小写

您可以使用正则表达式来更改匹配某些条件的字符的大小写。

  1. 打开搜索和替换窗格Ctrl+R。确保正则表达式图标在搜索字段中选中它。

  2. 在搜索字段中输入搜索模式。

  3. 在替换字段中,根据您要实现的目标,输入以下语法之一:

    • \l将字符更改为小写,直到字符串中的下一个字符。

      例如,Bar变成bar

    • \u将字符更改为大写,直到字符串中的下一个字符。

      例如,bar变成Bar

    • \L将字符更改为小写,直到文字字符串的结尾\E

      例如,BAR变成bar

    • \U将字符更改为大写,直到文字字符串的结尾\E

      例如,bar变成BAR

    切换到大写字符示例

有关更多详细信息,请参阅RegEx 语法参考表。

最后修改:2021 年 9 月 14 日