Atom语言语法的多行表达式

时间:2016-10-31 12:14:12

标签: regex atom-editor

我正在为脚本语言编写语言高亮包。此语言的评论以数字符号#开头,并以同一行结尾,除非最后一个字符是符号&。这就是我的尝试。

{
    'comment': 'Comments'
    'begin': '#'
    'end': '[^&]$'
    'name': 'punctuation.definition.comment'
    'patterns': [
        {
            'include': 'text.todo'
        }
    ]
}

但是这失败并且只是一个简单的美元符号$。 Atom基于TextMate,使用Oniguruma正则表达式。这应该有效,但它不起作用(既不是后视(?<!&)$)。奇怪的是,“反向匹配”[&]$完美无缺。

这是一个错误还是我遗失了什么?

我的Atom版本是:

 Atom    : 1.10.2
 Electron: 0.37.8
 Chrome  : 49.0.2623.75
 Node    : 5.10.0

1 个答案:

答案 0 :(得分:0)

我仍然不知道为什么(?<!&)$不起作用,但(?<!&)\n完美无缺:

{
    'comment': 'Comments'
    'begin': '#'
    'end': '(?<!&)\n'
    'name': 'punctuation.definition.comment'
    'patterns': [
        {
            'include': 'text.todo'
        }
    ]
}

我将尝试找出为什么带有字符串结尾的正则表达式(美元符号$)不起作用并更新此答案。