vscode 正则表达式子匹配评估而不是连接?

vscode regex sub match evaluate instead of concatenate?

Test 300
Test 301
Test 302

我可以使用正则表达式查找循环遍历这些:

Test (3[0-9]*)

当我尝试用数学替换时,它连接而不是求值?

Test -100

所以,它变成了:

Test 300-100

是否可以计算而不是连接,所以它变成:

Test 200

谢谢。

您可以使用 VS Code Super Replace 扩展来实现这一点。

查找字段是正则表达式

Replace 是替换表达式。使用 $$index 语法的子匹配将使用 处理函数 字段

中的函数解析

这是一个可以回答您问题的使用示例:

现在有更多的扩展可以做到这一点,包括我写的一个 Find and Transform

使用此键绑定:

{
  "key": "alt+m",                     // whatever keybinding you want
  "command": "findInCurrentFile",
  "args": {
    "find": "(?<=Test\s)(3\d\d)",  // get 300+ in capture group 1
    "replace": "$${ return  - 100 }",      // subtract 100 from capture group 1
    "isRegex": true
  }
}