Eri*_*ric 105 regex replace visual-studio-code
尝试在Visual Studio Code中进行搜索替换,我发现它的正则表达式与完整的Visual Studio不同.具体来说,我尝试声明一个string (?<p>[\w]+)在Visual Studio中工作而不在Visual Studio Code中工作的命名组.它会抱怨错误Invalid group.
除了解决这个特定的问题,我正在寻找有关Visual Studio Code中Regexes风格的信息以及在哪里可以找到有关它的文档,因此我可以帮助自己处理我可能偶然发现的任何其他问题.
完整的Visual Studio使用此处记录的.NET正则表达式.这个链接在Stackoverflow的其他地方被提到作为VS Code的文档,但事实并非如此.
Sha*_*tin 147
MSFT的Rob Lourens写道,文件搜索使用Rust正则表达式.该锈语言文档描述的语法.
MSFT的Alexandru Dima写道,find小部件使用JavaScript正则表达式.正如Wicktor评论的那样,ECMAScript 5的文档描述了语法.如此做MDN JavaScript的正则表达式指南.
文件侧栏中(?=foobar)的查找不支持,而文件中的查找小部件确实支持该前瞻语法.
要查找/与组更换,使用括号()以组$1,$2,$3,$n来代替.
这是一个例子.
之前:
后:
Shaun的答案仍然是正确的,但是为了添加更新,最近VS Code添加了选择使用基于Perl的PCRE2引擎的选项。您可以通过设置配置启用此功能。
这使您可以执行更高级的正则表达式操作,例如前瞻和反向引用。但正如指出的下方,正则表达式还必须是有效的JavaScript正则表达式。
VS Code确实支持正则表达式搜索,但是默认情况下不支持反向引用和环视。但是您可以使用设置search.usePCRE2启用它们。这会将ripgrep配置为使用PCRE2正则表达式引擎。尽管PCRE2支持许多其他功能,但我们仅支持在JavaScript中仍然有效的正则表达式,因为仍然使用基于JavaScript的搜索来搜索打开的编辑器。
另外,如果您最终还是在这里尝试多行搜索,那么VS Code最近也增加了该功能!
我找到了有关它的更新信息(2020 年 7 月 22 日)。
IllusionMH在 GitHub 上留下了以下评论:
ripgrep(与 PCRE2 兼容)已用于在文件中查找功能(对于未打开的编辑器),并且 JS 引擎仅用于打开的编辑器。
| 归档时间: |
|
| 查看次数: |
66860 次 |
| 最近记录: |