如何使用正则表达式模式执行此操作?

时间:2013-02-22 12:16:12

标签: regex sublimetext2 textmate

我正在为6502汇编语言编写自定义TextMate / Sublime Text 2包。

无论如何,我希望能够识别常量,变量等。

我有HEX个数字:

<dict>
    <key>match</key>
    <string>#?\#[0-9a-fA-F]+</string>
    <key>name</key>
    <string>constant.numeric.decimal</string>
</dict>

但它并不适用于以下情况:

#14              // works
#$2F             // works
#coolVariable    // doesn't work.  The "#c" is caught and colored but the rest is not.
                 //                In this case, I DON'T want any of it to be colored.

就像代码所说的那样,它不应该为#coolVariable着色,而是抓住它的#c部分。

我想分别为这些变量着色。区分这两种模式的正则表达式是什么?

那样:

#c0      //  Caught by one pattern  (values in decimal or hexadecimal or binary)
#%10101  //  Caught by one pattern  (values in decimal or hexadecimal or binary)
#c0BLAH  // Caught by another pattern

由于

2 个答案:

答案 0 :(得分:0)

使用\ b进行单词边界

所以放\b#?\#[0-9a-fA-F]+\b

答案 1 :(得分:0)

\#[0-9a-fA-F]+\b

标记该单词必须在使用任何其他字符之前结束。