【发布时间】:2017-06-29 23:05:42
【问题描述】:
尝试在 Visual Studio Code 中进行搜索替换,我发现它的 Regex 风格与完整的 Visual Studio 不同。具体来说,我尝试使用 string (?<p>[\w]+) 声明一个命名组,该组在 Visual Studio 中有效,但在 Visual Studio Code 中无效。它会报错Invalid group。
除了解决这个特定问题之外,我还在寻找有关 Visual Studio Code 中正则表达式风格的信息以及在哪里可以找到有关它的文档,这样我可以帮助自己解决我可能偶然发现的任何其他问题。
完整的 Visual Studio 使用记录在 here 中的 .NET 正则表达式。这个链接在 Stackoverflow 上的其他地方被称为 VS Code 的文档,但事实并非如此。
【问题讨论】:
-
VSCode 使用的是基于 JavaScript 的正则表达式引擎,但并不相同。你不能在那里使用命名的捕获组。
-
没有关于 VSCode 中使用的正则表达式的具体文档。但是,如果您查看source code,您会看到很多 JS 代码。如果您尝试使用lookbehinds,您会得到无效的模式错误,而lookaheads 工作。并且 JS 正则表达式风格是唯一将
[^]模式视为匹配任何符号的正则表达式引擎。所以,很明显它是 JS 正则表达式引擎。 -
标准是ECMAScript 5。
-
好的。好吧,如果您确定并且您有一些指向文档的链接,您可以回答。我会投票。如果 ECMAScript 规范是唯一的,请不要认为它是一个很好的链接。
-
那么,你期待什么样的答案呢?我在上面发布的所有内容+指向 JS 正则表达式语法描述的链接?喜欢MDN reference?
标签: regex replace visual-studio-code