如何在VS Code的查找/替换中使用命名捕获组?

5
在 VS Code 的查找/替换编辑器小部件中,我正在使用一个命名捕获组 (?<end>.*\s*)。然后在替换中使用 ${end},但它只是将字面文本放置在那里,而不是捕获的内容。无名捕获组按预期工作。我的正则表达式在 Visual Studio 2019 中运行正常,但我不知道如何调整命名捕获组语法以适应 VS Code。

由于 VSC != Visual Studio,一个使用 JavaScript 编写,另一个使用 C++,在 VSC 中使用数字组引用,如 $1 - rioV8
@rioV8 - 是的,我明白了。在VSC和Visual Studio中,$1(即未命名组)语法都可以使用。我特别想知道如何在VSC中编写命名组语法。Javascript文档展示了如何在javascript代码中编写它(例如${match.groups.firstname}),但我不确定如何在VSC的替换窗口中编写它。 - default
你能提供这个 Javascript 文档 的链接吗? - rioV8
@rioV8 - https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges - default
VSC使用的Node版本是哪个?Node的哪个版本得到支持? - rioV8
@rioV8谢谢你,非常感谢你解释这是$1而不是\1。 - elucify
1个回答

9

哇!我以为自己疯了,忘记了正则表达式的工作原理。 - Simon_Weaver
注意:您仍然可以在正则表达式本身中放置命名组 - 只是替换字段仅支持$1$2,即使您对正则表达式使用了(?<name>[a-z]+),它们仍将被填充。 - Simon_Weaver
工单已关闭,因此无法使用点赞反应。但是,工单仍在待办事项中吗? - starball

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接