RubyMine 2025.2 Help

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

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

IDE 使用 Java 正则表达式,这是包含在 IDE 运行所需 JDK 中的正则表达式。 有关模式的更多信息,请参阅 docs.oracle.com 上的 Class Pattern。 这些表达式大多(但不完全)与 PCRE (Perl Compatible Regular Expressions) 兼容。

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

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

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

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

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

    不过,当您专门搜索诸如 .[{()\^$|?*+ 这样的元字符时,您需要使用反斜杠 \ 进行转义,以便它们可以被识别。

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

  4. RubyMine 也可以匹配当您在搜索字段中输入字符范围时的字母大小写。

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

    \b[A-Z]

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

  5. 如果在搜索字段中未选择 “Match Case” 图标 ,RubyMine 会搜索小写和大写两者。

    选择 “Match Case” 图标 以匹配指定范围的大小写。

  6. 当您浏览出现的情况时,RubyMine 会显示替换提示,因此您可以在点击 替换 按钮之前查看潜在结果。

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

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

例如,对于数字捕获组,请使用以下语法:

<h2>(.*?)</h2>
$1

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

<h2>(?<title>.*?)</h2>
${title}

查找并替换捕获组

让我们考虑以下内容:

<new product="ij" category="105" title="Multiline search and replace in the current file"/> <new product="ij" category="105" title="Improved search and replace in the current file"/> <new product="ij" category="105" title="Regexp shows replacement preview"/>
  1. 打开搜索和替换窗格 Ctrl+R

  2. 在查找字段中输入括号 () ,表示一个 捕获组 ,例如: \stitle="(.*)?"\s*(/>*)

  3. 在替换字段中,通过以 1 开始的数字来引用这些 backreference 组,例如:

    $2<title>$1</title>
  4. RubyMine 根据您的搜索规格突出显示找到的匹配项,并显示替换字符串的提示。

    替换为正则表达式结果

切换字符大小写

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

  1. 打开搜索和替换窗格 Ctrl+R。 确保已在搜索字段中选择 Regex 图标

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

  3. 在替换字段中,依据您的需求,输入以下语法之一:

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

      例如, Bar 变为 bar

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

      例如, bar 变为 Bar

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

      例如, BAR 变为 bar

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

      例如, bar 变为 BAR

如需更多信息,请参阅 RegEx syntax参考表。

最后修改日期: 2025年 9月 26日