【发布时间】:2014-03-03 19:58:55
【问题描述】:
我有以下字符串:
{:.test1, .test2, .test3}
我使用它作为 Markdown 的扩展。对于那个字符串,我想要一个带有 ace 的语法高亮。但是我无法构建一个匹配的正则表达式来捕获正确的组。
我需要捕获的是:{: 作为第一组。第二组中的所有.test#。全部,作为第三组,最后}
我想出的当前正则表达式是:({:)(\\.\\w+)(,\\s*|)
但是这仅匹配:{:,.test1 和 ,,而不是以下 .test2 和 ,
我需要的是一个正则表达式,它捕获{:,然后是所有出现的.test1 和,,最后是}
目的是为逗号着色与类名不同,因此我需要捕获它。
见https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode
还有例子:
{
token : ["constant", "keyword"],
regex : "^(#{1,6})(.+)$"
} // ### Header -> constant(###), keyword( Header)
这里他们匹配两组我需要但是 4 组。
{
token : ["constant", "keyword", "variable", "constant"],
regex : "unknown"
}
// {:.test1, .test2} -> constant({:), keyword( .test1), keyword(.test2), variable(,), constant(})
【问题讨论】:
-
这样的?
({:|.test\d|,|})- regex101.com/r/tG7aW3 -
不幸的是,这行不通,因为我确实与职位上的组完全匹配。
标签: javascript regex ace-editor