Sublime 语法正则表达式只高亮分隔符内的匹配
Sublime Syntax Regex Only Highlight Match Within Delimiters
我想将字符串与出现在指定分隔符内的正则表达式匹配,但不是分隔符本身,以便在 Sublime Text 包中突出显示语法。我是运行 ST3.
例如,在sublime-notes包中,这个<dict>
元素用于匹配<
和>
之间的文本,包括 尖括号本身,这导致 <this>
被突出显示,而不仅仅是 <this
>.
<dict>
<key>comment</key>
<string>Important, surrounded by <...></string>
<key>match</key>
<string>(\<[^\>]*\>)</string>
<key>name</key>
<string>constant.other.date.notes</string>
</dict>
如何修改 <string>
标记之间的正则表达式,使其在语法高亮显示中不包含肘括号?
您可以将左右定界符放在环视结构中:
<string>(?<=<)([^>]*)(?=>)</string>
或者,使用 CDATA 块来避免序列化特殊的 XML 个字符:
<string><![CDATA[(?<=<)([^>]*)(?=>)]]></string>
在 XML 解析器反序列化模式字符串后,模式将看起来像 (?<=<)([^>]*)(?=>)
,并且 (?<=<)
将匹配紧跟在 <
字符之前的位置,而 (?=>)
正面前瞻将确保下一个字符是 >
(否则匹配将失败)。
我想将字符串与出现在指定分隔符内的正则表达式匹配,但不是分隔符本身,以便在 Sublime Text 包中突出显示语法。我是运行 ST3.
例如,在sublime-notes包中,这个<dict>
元素用于匹配<
和>
之间的文本,包括 尖括号本身,这导致 <this>
被突出显示,而不仅仅是 <this
>.
<dict>
<key>comment</key>
<string>Important, surrounded by <...></string>
<key>match</key>
<string>(\<[^\>]*\>)</string>
<key>name</key>
<string>constant.other.date.notes</string>
</dict>
如何修改 <string>
标记之间的正则表达式,使其在语法高亮显示中不包含肘括号?
您可以将左右定界符放在环视结构中:
<string>(?<=<)([^>]*)(?=>)</string>
或者,使用 CDATA 块来避免序列化特殊的 XML 个字符:
<string><![CDATA[(?<=<)([^>]*)(?=>)]]></string>
在 XML 解析器反序列化模式字符串后,模式将看起来像 (?<=<)([^>]*)(?=>)
,并且 (?<=<)
将匹配紧跟在 <
字符之前的位置,而 (?=>)
正面前瞻将确保下一个字符是 >
(否则匹配将失败)。