我想要一个特别的评论"具有特殊亮点的语法。
例如:
我使用Sublime Text 2.我发现这个Persistent Regex Highlight似乎就是这么做的,但我似乎无法弄明白该怎么说....
" highlight anything between <!--x and x--> "
到目前为止,我可以得到这个基本字符串,&#34;哟&#34;要突出显示,我已经尝试了一堆正则表达式,但唉,我无法看到它! (避免使用正则表达式太多而且我的搜索条件没有具体说明)
{
"regex": [{
"pattern": "yo",
"color": "ff0000",
"ignore_case": false
}]
}
这很有用......但我不明白。
{
"regex": [{
"pattern": "(?<=<!--x).*?(?=x-->)",
"color": "ff0000",
"ignore_case": false
}]
}
我会欣赏任何方向。 - @sheriffderek
答案 0 :(得分:1)
所以,似乎你有一个有效的解决方案,但你正在寻找解释? (如果我在这里误解了这个问题,请纠正我。)
让我们将正则表达式分解为其组件:
(?<= <!--x ) . *? (?= x--> )
<!--x
和x-->
是文字字符串,直接显示在文字中。
(?<= subpattern)
被称为lookbehind断言。它要求匹配的文本以子模式开头,但它不包括返回的匹配文本中的子模式。在这种情况下,这意味着<!--x
必须出现在任何突出显示的文本之前。
(?= subpattern)
同样称为lookahead断言。完全相同的是,它要求子模式在匹配后进行,但不包含在其中。.
匹配除换行符之外的任何字符(可能是您想要的也可能不是*?
是non greedy repeat,这意味着它将匹配之前任意数量的模式(在这种情况下为.
),但如果它有多个匹配选项将挑选最短的一个。