JetBrains Rider 2025.1 Help

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

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

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

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

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

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

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

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

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

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

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

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

    \b[A-Z]
  5. 如果在搜索字段中未选择 “Match Case” 图标 ,JetBrains Rider 会搜索小写和大写两者。

    选择 “Match Case” 图标 以匹配指定作用域的大小写。

    匹配大小写选择的结果
  6. 当您浏览出现的情况时,JetBrains Rider 会显示替换提示,因此您可以在点击 替换 按钮之前查看潜在结果。

    替换提示

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

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

查找并替换捕获组

让我们考虑以下内容:

<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. JetBrains Rider 根据您的搜索规格突出显示找到的匹配项,并显示替换字符串的提示。

    替换为正则表达式结果

切换字符大小写

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

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

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

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

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

      例如, 条形图 变为 条形图。

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

      例如, 条形图 变为 条形图。

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

      例如, BAR 变为 条形图。

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

      例如, 条形图 变为 BAR。

    切换到大写字符示例

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

查找和替换字符串

假设您想将元素 标题 中的属性替换为包含双引号内任意字符串的扩展标签 <title></title>。

操作如下。

  1. 在编辑器中打开 XML 文件后,按 Ctrl+R。 替换 窗格出现在编辑器顶部。

  2. 由于您想替换所有 标题 属性,而不管其中实际包含的字符串,请使用正则表达式。 确保选中复选框 正则表达式。 因此,您在 搜索 和 替换 字段中输入的所有内容都将被视为正则表达式。

  3. 在 搜索 字段中,开始输入描述所有 标题 属性的正则表达式。

    \stitle="(.*)?"\s*(/>*)

    请注意,尽管正则表达式 \stitle=".*?"\s*[/>]* 匹配 标题 属性的内容,但建议捕获组以便在 替换 字段中引用它们。

    regex_sample_code.png
  4. 然后,在 替换 字段中,输入以下正则表达式:

    $2<title>$1</title>

    其中 $1 指的是第一个 捕获组, $2 指的是第二个捕获组。

  5. 单击 替换 或 全部替换。

2025年 7月 31日