【发布时间】:2017-02-16 08:36:32
【问题描述】:
我正在开发 VS Code 中的语法扩展,但我在查看正则表达式模式时遇到了困难。给定以下字符串,我只想在 @fmt(
之前返回 cmp@fmt(cmp,foo)
我在另一个编辑器中使用的匹配字符串是这样的:
(?<=[@|©](fmt)\()(\w+)
但是,这在 VS Code 中不起作用,当我进行正则表达式搜索时,它返回的错误是它不是有效的表达式。玩弄它,问题在于 字符,表示后面的样子。
搜索 VS Code 网站不会返回任何类型的正则表达式参考指南。搜索 Stack Overflow 得到了 this question,它指出 Visual Studio 有一个独特的正则表达式定义。不幸的是,该问题中给出的示例在 VS Code 中不起作用。
有人知道如何在 VS Code 中查看正则表达式吗?或者至少知道 VS Code 的正则表达式文档在哪里?
我担心这是不可能的,因为根据Stack Overflow reference,JavaScript 不支持后视。 another question 展示了如何在 JavaScript 函数中模仿外观,但我不知道是否可以使用用户定义的函数在 VS Code 中扩展语言。如果有人知道如何做到这一点,并且可以指出我的方向,那也是一个可以接受的解决方法。
【问题讨论】:
-
托马斯,你在做什么?请解释你需要用
@fmt(cmp,foo)做什么?最终结果是什么?查找并突出显示?那么您根本不需要后视,也不需要捕获组 -[@©]fmt\(\w+就足够了。 -
用于语法高亮,我希望 @fmt 是一种颜色(函数),而 cmp 是另一种颜色(参数) . @ 符号后面有多个可能的字符串,这只是一个简化的示例。
-
我确实有 @fmt 部分使用字符串 ([@|©|®]\w+) 工作。我只是对括号内的参数作为不同的颜色感到困惑,正如我在我在 Editpad Pro 语法着色中工作的问题中所说的那样。
标签: regex visual-studio-code regex-lookarounds vscode-extensions