我正在尝试为 Simulink 的目标语言编译器(TLC) 文件编写 Sublime Text 2 语法荧光笔。这是一种用于自动生成代码的脚本语言。在 TLC 中,扩展标记内容的语法(类似于取消引用 C 或 C++ 中的指针)是
%<token>
我写的匹配这个的正则表达式是
%<.+?>
这适用于大多数情况,但不适用于以下语句
%<LibAddToCommonIncludes("<string.h>")>
如果语句本身在一行上,则将正则表达式修改为贪婪可以解决此问题,但在其他几种情况下会失败。所以这不是一个选择。
对于该行,突出显示在第一行>
而不是第二行停止。如何修改正则表达式来处理这种情况?
如果有一个通用表达式可以处理任意数量的嵌套<>
对,那就太好了;例如
%<...<...>...<...<...>...>...>
其中点是可选字符。上面的整个表达式应该是一个匹配项。