我试图在Sublime Text 2中创建自己的主题以突出显示CSS语法。我剩下的就是keyframes
。
@-webkit-keyframes spin { /* some rules */ }
@-moz-keyframes colorize { /* some rules */ }
@-ms-keyframes spin { /* some rules */ }
@-o-keyframes spin { /* some rules */ }
@keyframes colorize { /* some rules */ }
我想突出显示最初的@
和单词keyframes
,而不突出显示引擎前缀,例如-webkit-
或-moz-
,因此只有@keyframes
必须是返回。
什么是正确的正则表达式?
我试过了:
((?<=-webkit-)|(?<=-moz-)|(?<=-ms-)|(?<=-o-)|)keyframes
但这并不包含@
,甚至根本不会返回Sublime文本中的keyframes
。
更新 ----
感谢Cheruvian,我一直意识到我面前的一切。
Sublime的解析器结构是(我在意识到<key>name</key>
之后添加了评论):
<dict>
<!-- Regexp pattern -->
<key>match</key>
<string>\s*(@)(-(webkit|moz|ms|o)-)?(keyframes)</string>
<!-- Referencing to the groups captured above -->
<key>captures</key>
<dict>
<!-- 1st group captured -->
<key>1</key>
<dict>
<!-- Referencing name -->
<key>name</key>
<string>keyword.control.keyframes.css</string>
</dict>
<!-- 2nd group captured -->
<key>2</key>
<dict>
<!-- Referencing name -->
<key>name</key>
<string>punctuation.definition.keyword.css</string>
</dict>
<!-- n group captured -->
<key>n</key>
<dict>
<!-- Referencing name -->
<key>name</key>
<string>some.name.css</string>
</dict>
</dict>
</dict>
从那以后,我所要做的就是对正则表达式进行分组并选择我想要的组,并为它们提供一些独特的引用字符串。
答案 0 :(得分:1)
假设sublime使用捕获组,您可以使用:
(@).*?(keyframes)
正则表达式捕获组由括号表示。 (从手机将尝试稍后清理)