You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式如何匹配多个JavaScript import语句

解决JavaScript Import语句的正则匹配问题

你的问题出在正则里的贪婪匹配:原正则中的.*会尽可能匹配最多的内容,导致从第一个import开始,直接匹配到字符串末尾的分号,把两个语句当成了一个整体。

修正后的正则方案

针对你给出的默认导入场景,推荐使用非贪婪匹配来限制范围,同时让正则更贴合JS语法规则:

import\s+([\w$]+)\s+from\s+['"](.*?\.js)['"]\s*;

正则各部分说明

  • import\s+:匹配import关键字及后续任意空白字符
  • ([\w$]+):捕获合法的JS变量名(支持字母、数字、下划线、$,对应你例子中的$和dirtyFormUnload)
  • \s+from\s+:匹配from关键字及前后的空白
  • ['"]:匹配单引号或双引号(覆盖字符串的引号边界)
  • (.*?\.js):非贪婪匹配.js结尾的文件路径,确保不会跨语句匹配
  • ['"]\s*;:匹配闭合引号、可选空白字符和语句结束的分号

测试效果

用你提供的输入字符串:

import $ from "./components/jquery.js"; import dirtyFormUnload from "./components/dirtyFormUnload.js";

匹配后会得到两个独立的结果:

  1. import $ from "./components/jquery.js";
  2. import dirtyFormUnload from "./components/dirtyFormUnload.js";

关键改进点

把原正则中的贪婪匹配.*替换为非贪婪匹配.*?,让正则在遇到第一个满足后续条件(比如from、闭合引号)时就停止匹配,从而精准捕获单个import语句。

内容的提问来源于stack exchange,提问作者Agreene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:45:41