Javascript 正则表达式以查找字符串中的所有import*from*
我有一个由svelte生成的代码文件字符串,我想编写一个正则表达式来查找所有非本地导入语句,删除它们并用其他代码替换它们 生成的代码:Javascript 正则表达式以查找字符串中的所有import*from*,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个由svelte生成的代码文件字符串,我想编写一个正则表达式来查找所有非本地导入语句,删除它们并用其他代码替换它们 生成的代码: /* generated by Svelte v3.31.2 */ // want to get this one import { SvelteComponent, } from "svelte/internal"; // want to leave this one import Button from "Button
/* generated by Svelte v3.31.2 */
// want to get this one
import {
SvelteComponent,
} from "svelte/internal";
// want to leave this one
import Button from "Button.svelte";
class Component extends SvelteComponent {
constructor(options) {
super();
if (!document.getElementById("svelte-1vakd91-style")) add_css();
init(this, options, null, create_fragment, safe_not_equal, {});
}
}
export default Component;
/import{(\s{0,}((?!\d)(\w+(:\w+),?)|(\s{0,}\*)(as\s{0,}\w+)+}?从(“|”)开始((\.\.\/)(?!\d)(\w+(\/){0,})+(“|”)/gi
基本上,这表示匹配任何一组字符串:
已导入,后跟
{(\s{0,}((?!\d)(\w+(:\w+,?)|(\s{0,}\*)(as\s{0,}\w+)+}?
…任何字母、数字或不以数字开头的uu,或它等于*
的字符,可以选择用花括号括起来。它还确保捕获别名,可以是:
后跟任何字母或数字,也可以是as
后跟任何字母或数字
from(“|”)(!(?)(?!\d)(\w+(\/){0,})+(“|”)
这意味着它后面还有一个来自的,并匹配任何不以
或/
开头的字母或数字,因为如果它以该开头,它将从您自己的目录而不是节点模块导入内容。但是,由于它正在访问节点模块中的特定文件或文件夹,因此可以在字母或数字后自由地加上/
注意:这适用于导入导出。不需要。对,你试过什么?我已经研究过这个软件包:还有这个:但我对regex不太在行。。。这就是为什么我要问这个问题。。。我想得到一些帮助:)事实上,我认为我链接到的要点可能非常好,但我不知道如何根据我的需要进行调整。不要使用正则表达式来实现这一点,但这是一个合适的工作工具。Transpiler就是为了解决这个问题而构建的,它们将正确解析javascript。感谢Bergi的输入!感谢Destroyer22719(顺便说一句史诗般的名字!)的回复和解释!!我会试试看,然后再给你回复。