用于在导入语句中查找关键字的正则表达式

时间:2018-10-05 08:07:12

标签: javascript regex regex-group

假设我们有以下导入语句(不是特定于语言的):

import "./test"

import "./test" as Test

import { Test } from "./test"

import { Person as Individual } from "./test"

我正在尝试编写一个正则表达式以粗体检索以下组:

导入“ ./test”

导入“ ./ test” 测试

导入 {测试} 来自“ ./ test”

导入 {个人,个人,测试,包背包} 来自“ ./ test” < / p>

我尝试编写以下正则表达式:

/^(import)(?:.+?)(\s+from\s+|\s+as\s+)*(?:.+?)$/gm

https://regex101.com/r/4sO59R/1

但是这与我的预期不符...我只能得到导入 ... 我应该如何正确编写它?

2 个答案:

答案 0 :(得分:2)

尽管理想的正则表达式很难捕获数据,但我想出的最接近的正则表达式是给定文本,

^(import)(?:.*?(as))?(?:.*?(as))?(?:.*?(from))*.*$

在这里播放 https://regex101.com/r/7aIudD/1

答案 1 :(得分:1)

这可能也可以工作,并且更容易理解。

\b((^import)|(as)|(from))\b

在这里尝试:

https://regex101.com/r/7aIudD/2

编辑:我应该补充一点,我刚刚注意到您使用的是Javascript,因此可能不支持重复捕获。这意味着您可能不得不借助手动方式搜索字符串(不难)或以某种方式拆分字符串并进行多次搜索。如果问题像您描述的那么简单,我将进行手动搜索。