【发布时间】:2019-03-10 16:38:15
【问题描述】:
假设我们有以下 import 语句(不是特定于语言的):
import "./test"
import "./test" as Test
import { Test } from "./test"
import { Person as Individual } from "./test"
我正在尝试编写一个正则表达式来检索以下组,以粗体显示:
导入“./test”
import "./test" as 测试
import { 测试 } 来自 "./test"
import { Person as Individual, Test, Bag as Backpack } from "./test"
我尝试编写以下正则表达式:
/^(import)(?:.+?)(\s+from\s+|\s+as\s+)*(?:.+?)$/gm
https://regex101.com/r/4sO59R/1
但它并没有像我预期的那样工作......我只能得到 import...... 应该怎么写呢?
【问题讨论】:
-
请说明您需要对所有这些捕获执行什么操作:替换、删除、提取、包装?它们是多行文本中的独立字符串还是行?听起来好像您需要一个完整的专用语言解析器。您的正则表达式将不起作用,因为您的组是可选的,并且最后一个
.+?在该组完全匹配其模式之前将整个文本抓取到字符串的末尾。无论如何,即使您修复它也不支持重复捕获。
标签: javascript regex regex-group