Regex 升华语法正则表达式仅突出显示分隔符内的匹配
我希望将字符串与出现在指定分隔符内的正则表达式相匹配,但不匹配分隔符本身,以便在升华文本包中突出显示语法。我正在运行ST3 例如,从包中,此Regex 升华语法正则表达式仅突出显示分隔符内的匹配,regex,sublimetext3,syntax-highlighting,Regex,Sublimetext3,Syntax Highlighting,我希望将字符串与出现在指定分隔符内的正则表达式相匹配,但不匹配分隔符本身,以便在升华文本包中突出显示语法。我正在运行ST3 例如,从包中,此元素用于匹配和之间的文本,包括尖括号本身,这会导致突出显示,而不仅仅是 评论 重要的是,被。。。 比赛 (\[^\]*\) 名称 常量.其他.日期.注释 如何修改标记之间的正则表达式,使其在语法突出显示中不包含弯头括号?您可以在环视结构中放置左右分隔符: <string>(?<=<)([^>]*)(?
元素用于匹配
和
之间的文本,包括尖括号本身,这会导致突出显示
,而不仅仅是
评论
重要的是,被。。。
比赛
(\[^\]*\)
名称
常量.其他.日期.注释
如何修改
标记之间的正则表达式,使其在语法突出显示中不包含弯头括号?您可以在环视结构中放置左右分隔符:
<string>(?<=<)([^>]*)(?=>)</string>
(?=)([^]*)(?=)
或者,使用CDATA块避免序列化特殊的XML字符:
<string><![CDATA[(?<=<)([^>]*)(?=>)]]></string>
]*)(?=>)]]>
XML解析器反序列化模式字符串后,该模式将看起来像
(?)
,而(?Try([\s\s]*?)
或(?第一个建议不起作用,但第二个建议成功了一半!XML不喜欢<代码>我明白你的想法,但在后面看的时候,问题是正则表达式不能用引号括起来,XML认为<代码>这非常有效,非常有创意!非常感谢。@tsouchlarakis,这没有那么有创意,我只是对[^\]
感到困惑,它在文本字符串模式中没有意义,并且看起来有误导性。一旦我意识到它是XML的一部分,它就变得清晰了。实际上,您也可以使用CDATA块:]*(?=>)]]>
这很有效,我刚刚实现了它。再次感谢你。你能告诉我为什么使用CDATA块更好吗?@tsouchlarakis你不需要序列化
和&
。
<string><![CDATA[(?<=<)([^>]*)(?=>)]]></string>