vscode regex查找/替换字符串中的字符

时间:2019-08-26 20:16:19

标签: regex replace visual-studio-code

我要替换的所有实例

() => import('@/components/something/Something')

使用

() => import(/* webpackChunkName: "components--something--Something" */ '@/components/something/Something')

到目前为止,我有此查找/替换正则表达式

查找:\(\) => import\('(.+?)'\)

替换:() => import(/* webpackChunkName: "$1" */ '$1')

替换为:

() => import('@/components/something/Something')

使用

() => import(/* webpackChunkName: "@/components/something/Something" */ '@/components/something/Something')

我的问题是我不知道如何替换“ @”和“ /”字符

我是否需要执行两个查找/替换查询,还是可以只执行一个?我想完全删除“ @”并将“ /”替换为“-”

任何帮助,不胜感激!

谢谢

2 个答案:

答案 0 :(得分:1)

有两个查找/替换项:

find: (\(\) => import\()'@/([^']*)'\)
replace: $1/* webpackChunkName: "$2" */  '@/$2')

demo

find: ((?:\G(?!^)|\(\) => import\(/\*)[^/*]*)/
replace: $1--

demo

答案 1 :(得分:0)

如果路径始终@/part1/part2/part3模式匹配,那么您可以将这些部分单独分组并像这样使用反向引用:

查找:

\(\) => import\('(@/(.+?)/(.+?)/(.+?))'\)

替换:

() => import(/* webpackChunkName: "$2--$3--$4" */ '$1')

但是,如果路径部分的数量发生变化(可能性更大),那么最好的选择就是第二和第三组查找,并按以下方式替换:

摆脱@/

查找:

(?<=\(\) => import\(/\* webpackChunkName: ")@/

替换:


(什么都代替)

/转换为--

查找:

(?<=\(\) => import\(/\* webpackChunkName: ")(.*?)/(.*?)(?=" \*/)

替换:

$1--$2

(您必须每行运行几次)