WebStorm 2026.1 Help

结构化搜索和替换

传统的搜索过程不会考虑源代码的语法和语义。 即使您使用正则表达式,WebStorm 仍然将您的代码视为常规文本。 结构化搜索和替换SSR )操作允许您根据代码结构在代码中搜索特定的代码模式或语法结构。

WebStorm 根据您创建的 search templates和您应用的 conditions查找和替换源代码片段。

结构性地搜索目标

  1. 在主菜单中,转到 编辑 | 查找 | 结构化搜索 以打开 结构搜索 对话框。

    要快速切换到 结构替换 对话框,请点击 “切换到替换”图标

    结构搜索对话框
  2. 结构搜索 对话框中,执行以下操作之一:

    • 从头创建模板:在模板列表中选择 草稿模板 ,并在编辑器区域中输入代码模板(例如,使用 $variable$ 表示您的代码)。

      要保存自定义模板以供以后使用,请在对话框工具栏上单击 保存模板 图标(保存模板按钮)。 您也可以选择将该模板保存为检查。

      结构化搜索对话框:保存模板

      WebStorm 会将创建的模板添加到模板列表中的 最近 节点。

    • 使用现有模板作为原型:从可用的现有模板列表中选择所需的模板。

      打开现有模板列表
    • 示例 1

      让我们从以下类中查找函数:

      class Person { constructor(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.eyeColor = eyeColor; this.age = age; } move(distanceInMeters) { console.log(`Person moved ${distanceInMeters}m.`); } sing(a) { console.log(`Person sings ${a}`); } jump (distanceInMeters,heightInMeters) { console.log(`Person jumped ${heightInMeters}m high and ${distanceInMeters}m right.`); } RETIRED(age) { return age >= 60; } }
      1. 在现有模板列表中,点击 JavaScript ,展开 常规 节点,并选择 Functions模板。

        现有模板对话框
      2. 单击 查找 ,在整个项目中搜索这些结构。 WebStorm 会在 查找 工具窗口中显示搜索结果。

        在 Find 工具窗口中找到的结果。
      3. 若要查找当前文件中的所有函数,请点击 作用域 ,从列表中选择 当前文件 ,然后点击 查找

        指定作用域 - 在当前文件中搜索

        结果也会显示在 查找 工具窗口中。

  3. 结构搜索 对话框中会显示所选模板及其过滤器的值。 您可以编辑现有筛选器或添加新的 条件。 将插入符号置于某个代码变量上,并使用过滤器区域管理其过滤器。

    例如,要更改模板中的参数数量,请选择 $parameter$ 变量并指定其适当的最小数量。

    编辑过滤器弹出窗口

    当您点击 查找 时,WebStorm 会打开 查找 工具窗口,其中列出了具有两个或更多参数的方法,在我们的示例中,仅显示 jump (distanceInMeters,heightInMeters) {}

    结构化搜索:结果
  4. 示例 2

    让我们为 $name$ 变量添加一个条件。

    1. 修饰符 面板中,单击 添加"添加"按钮 )以创建新的修饰符。 要使用正则表达式,请选择 文本。 您还可以根据变量添加 其他修饰符

    2. 对于 文本 修饰符,输入以下正则表达式:

      \b[A-Z]+\b
      在过滤器对话框中添加正则表达式
    3. 选择 区分大小写 复选框后,再点击 查找 ,只会在 查找 工具窗口中显示名称中含有大写字母的函数。 在我们的示例中,它是函数 RETIRED

      使用正则表达式作为名称变量筛选器的搜索结果
  5. 还提供其他选项,具体取决于所选语言。

    例如,请查看以下选项:

    • 语言 :使用该列表选择要在搜索中包含的文件类型。 在此情况下,它为 JavaScript

    • 目标 :使用该列表选择要搜索的项。 在此情况下,它为 name

      搜索目标
    • 递归 :选中后, WebStorm 将执行递归搜索,所有嵌套项都会包含在结果中。 例如,在启用 递归 的情况下搜索方法调用时, WebStorm 会在 foo(foo(foo())) 中找到嵌套调用。 禁用 递归 时,仅会找到外层调用。

    • 注入的代码 :选中后,诸如 HTML 中的 JavaScript 或 Java 中的 SQL 等注入的代码将包含在搜索中。

    • 区分大小写 :选中后,搜索结果将与搜索目标的大小写匹配。

  6. 指定搜索范围:项目、模块、目录或自定义范围。

  7. 点击 查找

    WebStorm 会在 查找 工具窗口中显示结果。

    在“查找工具”窗口中显示的结果

替换一个目标结构

  1. 在主菜单中,进入 编辑 | 查找 | 结构性替换.

  2. 结构化替换 对话框中,向搜索和替换模板区域添加新模板或 现有模板。 您可以像 search 模板一样保存替换模板。

  3. 如果您需要为替换模板中的变量添加过滤器,请将文本光标放在相关变量处,并使用过滤器区域来管理过滤器。

  4. 在过滤器区域中,根据您选择的 过滤器 ,指定条件。

    例如,我们拿一个变量 $name$ ,然后我们 搜寻并添加一个条件,以将找到的模板替换为小写字符。

    让我们将变量 $name2$ 命名,并添加以下筛选器 脚本 ,这基本上是一个 Groovy 脚本: name.name.toLowerCase()

    如果未指定脚本,WebStorm 会高亮显示新变量,鼠标悬停时将弹出工具提示,告知缺少脚本信息。

    结构化替换:指定条件

    点击 添加脚本​(Add script)​ 链接,并在打开的编辑字段中指定脚本。

    已指定脚本
  5. 要缩小替换结果,请选择以下选项:

    • 缩短完全限定名称 - 将完全限定类名替换为简短名称和导入。

    • 重新设置格式 - 会自动格式化替换的代码。

    • 使用 static import - 在可能的情况下使用静态导入进行替换。

    指定必要选项后,点击 查找。 WebStorm 在 查找 工具窗口中显示结果。

  6. 查找 工具窗口中,您可以进一步处理结果,逐一替换找到的项目,或一次性替换所有项目,或预览您潜在的更改。

共享搜索模板

您可以通过导出或导入搜索模板与同事共享。

  1. 结构搜索 对话框 编辑 | 查找 | 结构化搜索 中, 创建一个新的搜索模板或使用现有的模板

  2. 要导出模板,请点击 “导出模板到剪贴板”图标。 WebStorm 将模板的 XML 表示添加到剪贴板(按 Ctrl+Shift+V 以查看剪贴板内容)。 您可以在聊天、电子邮件或论坛中与其他开发者共享此表示形式。

    要导入模板,请从任何地方(电子邮件、聊天或论坛)复制(Ctrl+C )共享的 XML 代码,并在 结构搜索 对话框中点击 从剪贴板导入模板图标。 WebStorm 接受 XML 代码表示并将其转换为模板,包括变量和作用域(如果存在)。

2026年 3月 24日