微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 VSCode 中的“查找和替换”删除大括号

如何解决通过 VSCode 中的“查找和替换”删除大括号

我需要在导入组件名称删除它周围的括号:

示例字符串

import { Component } from 'components/components1

Find 字段中使用的正则表达式:

import (\{(.*?)\}) from 'components/(componentgroup|componentgroup2|componentgroup3)

Replace 字段中使用的模式:

import $1 from 'ui/$2

这样我可以选择所有出现的地方,但无法在文本中获得预期的结果。

除了手动,还有其他方法吗?

我也有这个正则表达式,不带括号的匹配:

([^{}\s](?:[^{}]*[^{}\s])?)

解决方法

您的正则表达式很好,尽管您可以在结尾处使用单词边界来编写它以确保将组件作为整个单词匹配:

import (\{(.*?)\}) from 'components/(componentgroup|componentgroup2|componentgroup3)\b

接下来,您的替换模式必须是

import $2 from 'ui/$3

第 2 组,然后是第 3 组。

参见regex demo

增强版:

import\s+\{\s*(.*?)\s*\}\s+from\s+'components\/(componentgroup|componentgroup2|componentgroup3)\b

替换为 import $1 from 'ui/$2

this regex demo

由于 \s* 中的 \{\s*(.*?)\s*\},软件包名称将从空格中删除,而 \s+ 将确保即使单词之间有任何种类和数量的空格也会发生匹配.注意 Visual Studio Code 正则表达式有点特殊,除非模式中有 \s\r,否则 \n 不匹配换行符,因此,在这种情况下,\s不会越界。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。