tho*_*ett 7 regex regex-lookarounds visual-studio-code vscode-extensions
我正在研究VS Code中的语法扩展,而且我在查看正则表达式模式时遇到了困难.给定以下字符串,我想只返回cmp,前面是@fmt(
@fmt(cmp,foo)
Run Code Online (Sandbox Code Playgroud)
我在另一个编辑器中使用的匹配字符串是这样的:
(?<=[@|©](fmt)\()(\w+)
Run Code Online (Sandbox Code Playgroud)
但是,这在VS Code中不起作用,当我进行正则表达式搜索时,它会返回错误,表明它不是有效的表达式.玩弄它,问题是<=字符,表明背后的外观.
搜索VS Code网站不会返回任何类型的正则表达式参考指南.搜索Stack Overflow提出了这个问题,该问题表明Visual Studio具有唯一的正则表达式定义.不幸的是,该问题中给出的示例在VS Code中不起作用.
有谁知道如何看看VS Code中的正则表达式?或者至少知道VS Code的正则表达式文档在哪里?
我担心这是不可能的,因为根据Stack Overflow参考,JavaScript中不支持后面的内容.还有一个问题显示了如何模仿JavaScript函数中的后台,但我不知道是否可以使用用户定义的函数扩展VS Code中的语言.如果有人知道如何做到这一点,并且可以指向我这个方向,那也是一种可接受的解决方法.
从 Visual Studio Code v.1.31.0 版本开始,您可以infinite-width lookahead and lookbehind不受任何限制地使用。
见证明:
和另一个(带(?<=@fmt\([^()]*)\w+图案,注意*后面的):
请参阅Github[VSCode 1.31] ES2018 RegExp lookbehind assertions are now supported #68004问题:
由于迁移到Electron 3.0,
RegExp现在支持后视断言,因为它们自Chromium 62和Node 8.10.0起就受支持,并且Electron 3.0使用Chromium 66和Node 10.2.0,所以现在支持它们,但是发行说明没有提到现在支持后向断言。
VS Code 开发人员确认他们确实“忘记在发行说明中提及它”。
Visual Studio代码使用ECMAScript 5中指定的JavaScript正则表达式,它不支持外观(https://github.com/Microsoft/vscode/issues/8635).
如果您正在查找和替换,可以尝试以下解决方法(感谢cyborgx37):
搜索表达式:
(lookbehind_expression_)text_to_replace
替换表达式:
$1replacement_text
鉴于输入:
lookbehind_expression_text_to_replace
输出将是:
lookbehind_expression_replacement_text
| 归档时间: |
|
| 查看次数: |
4161 次 |
| 最近记录: |