gpt4 book ai didi

html - VScode - 用值替换捕获的组

转载 作者:行者123 更新时间:2023-12-02 19:05:04 27 4
gpt4 key购买 nike

我在代码中有一堆字符串,例如: <td style="background-color:#fdfdff">&nbsp;</td><td>&nbsp;</td>在一个文件中。

目标是替换&nbsp;来自第一个示例 0,而 &nbsp;来自 - (破折号)

的第二个示例

我正在使用 VScode 正则表达式,但找不到用特定值替换捕获的组的方法,因为 $1、$2 组指的是原始字符串组。这只是一个例子,我是如何尝试实现这一目标的,但 VScode 不会忽略分组的正则表达式。

enter image description here

最佳答案

另一种方法是使用可以进行条件替换的代码片段。使用此代码段:

    "replaceTDs": {
"prefix": "tdr", // whatever prefix you want
"body": [
"${TM_SELECTED_TEXT/(?<=\">)(&nbsp;)|(&nbsp;)/${1:+0}${2:+-}/g}",
]
}

条件替换可以非常简单,因为您首先 find并仅选择您感兴趣的两个备选文本。所以

查找:<td\s*(style="[^"]*"\s*)>&nbsp;</td>|<td>&nbsp;</td>旧版本

这个更简单的查找可能对您有用:

<td\s*(style="[^"]*")?\s*>&nbsp;</td>

不要替换,而是 Control+Shift+L :选择所有两个选项。 Esc 从查找小部件中聚焦到编辑器。

然后应用您的代码段,在本例中键入 tdr +制表符

所有的改变都完成了。您只需制作一次代码片段,然后进行一次查找。

td replacement demo


这种技术比运行尽可能多的查找/替换要好一些,因为你有替换要做。即使有更多的条件替换,也可能是对一个片段的简单更改以添加更多替换。


此外,如果您使用键绑定(bind)来触发您的代码段(您不必从查找小部件更改焦点 - 或创建单独的代码段),您还可以进一步简化此过程。所以没有片段,但是这个键绑定(bind):

 {
"key": "alt+w",
"command": "editor.action.insertSnippet",
"args": {
"snippet": "${TM_SELECTED_TEXT/(?<=\">)(&nbsp;)|(&nbsp;)/${1:+0}${2:+-}/g}"
},
"when": "editorHasSelection"
}

现在是同一个演示:

td replacement keybinding

关于html - VScode - 用值替换捕获的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65170303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com