【发布时间】:2020-10-21 18:14:12
【问题描述】:
我有一个组件库包,它被用于很多这样的文件中:
import { Grid, Heading, Button } from 'component-library'
我想将我的所有导入更改为这样的:
import { Grid } from 'component-library/lib/Grid'
import { Heading } from 'component-library/lib/Heading'
import { Button } from 'component-library/lib/Button'
我在 VSCode 上找到了一个用于执行此操作的扩展:
https://marketplace.visualstudio.com/items?itemName=angelomollame.batch-replacer&ssr=false#overview
而且它似乎也接受正则表达式。 我试图编写一个正则表达式来查找将旧导入替换为新的,但我的正则表达式不起作用。这是我当前的正则表达式:
(?:import)\s+([\w,{}\s\*]+)\s+(?:from)?\s*(?:["'])?([@\w\s\\\/.-]+)(?:["'])?\s*
你能帮我解决这个问题吗?
【问题讨论】:
-
(/^\s*import\s*\{((?:\s*\w+,*)+)\s*\}\s*from\s*(['"])([^'"]*)\2\s*;*\s*$/gm)... 将为您提供组 [1] => ' Grid, Heading, Button ' 和组 [3] => 'component-library' ...因此需要拆分第一个匹配组的模块命名空间,修剪每个命名空间并为在第三组中匹配的模块名称提供导入语法......我不知道插件是否支持自定义替换功能。 -
用marketplace.visualstudio.com/items?itemName=draivin.hsnips你可以添加javascript到sn-p
标签: javascript regex visual-studio-code regex-group regexp-replace