【问题标题】:vscode regex find/replace replace characters inside stringvscode正则表达式查找/替换字符串中的替换字符
【发布时间】:2019-08-26 20:16:19
【问题描述】:

我想替换所有实例

() => 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')

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

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

非常感谢任何帮助!

谢谢

【问题讨论】:

  • 不能在一次查找/替换中完成。
  • 很高兴知道.. 但我仍然想知道如何将其作为两个查找/替换操作来完成
  • 抱歉,今晚我在看《双峰》。

标签: regex replace visual-studio-code


【解决方案1】:

有两个查找/替换:

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

demo

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

demo

【讨论】:

    【解决方案2】:

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

    查找:

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

    替换:

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

    但是,如果路径部分的数量不同(这更有可能),那么您最好的选择可能是沿着这些路线进行第二组和第三组查找和替换:

    摆脱@/

    查找:

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

    替换:

    
    

    (替换为空)

    / 转换为--

    查找:

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

    替换:

    $1--$2
    

    (您必须每行运行几次)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-13
      • 2012-04-26
      • 2021-05-18
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      相关资源
      最近更新 更多