Sublime中的语法定义的正则表达式(TextMate)

时间:2014-02-03 12:52:59

标签: regex syntax-highlighting textmate sublimetext3

我正在为Sublime Text编写Regular-Expressions - Syntaxdefinition。 Sublime的格式与TextMate相同,如果有人熟悉的话。

(如果不是:你编写正则表达式(Python),并定义匹配的范围。然后主题文件定义这些范围的样式)

我在识别字符串中的转义序列时遇到了麻烦

这是语法,它应该在:

中定义字符串(在引号中)和escape-Sequences
- match: ("((?:(\\.)|[^"\\])*)")
  captures:
           '1': {name: punctuation.definition.string.fave}
           '2': {name: string.quotes.fave}
           '3': {name: escape.fave}

我想要3个不同颜色/范围的引号,字符串以及此String中的所有转义序列。

这是我的输出:

output

如您所见,正则表达式仅匹配最后一个转义序列,并忽略所有其他序列。

问题是什么?

1 个答案:

答案 0 :(得分:1)

这是在存储库中使用beginend语法的主要示例。尝试使用此

patterns:
- begin: \"
  end: \"
  beginCaptures:
    '0': { name: string.quotes.fave }
  endCaptures:
    '0': { name: string.quotes.fave }
  contentName: punctuation.definition.string.fave
  patterns:
  - include: '#escaped_char'

使用存储库

repository:
  escaped_char:
    match: '\\.'
    name: escape.fave

试图复制你的色彩主题。有了上述内容,我得到了这个:

enter image description here

抱歉恢复僵尸帖子。