【问题标题】:Sublime colour syntax highlighting using regex使用正则表达式突出显示崇高颜色语法
【发布时间】:2014-07-31 10:48:50
【问题描述】:

我已经设法整理了一个用于 Sublime Text 2 的语法 (.tmLanguage) 文件。我很想突出显示数字。我试过了:

<string>0|1|2|3|4|5|6|7|8|9</string>

这有效,但只适用于个位数,所以我认为正则表达式会是

<string>[0-9]</string>

但这不起作用。有人可以帮我正确使用 Sublime 的语法吗?

【问题讨论】:

  • “不起作用” 是什么意思?你试过[0-9]+\d+吗?
  • 为了解释@LucasTrzesniewski 的答案,在任何字符匹配其后的一个或多个字符后添加一个+。在你的情况下,至少一个数字,但尽可能多。我可以建议&lt;string&gt;\d+(\.\d+)?&lt;/string&gt;,因为它也会找到十进制数字。
  • 我在现有字符串部分的末尾尝试了它,奇怪的是只有几个数字改变了颜色。我刚开始尝试,在关键字之前,它有效! [0-9]+|\b(keyword|anotherkeyword)\b
  • @Mowday 将您的评论作为答案。我忽略了十进制表示法。

标签: regex syntax sublimetext2


【解决方案1】:

如果您将代码更改为:

<string>\d+</string>

它应该找到所有整数。

  • \d 等于任意数字 (0-9)
  • + 是表示“一个或多个前一个字符”的乘数

在您的情况下,至少一位数,但尽可能多。我可以建议:

<string>\d+(\.\d+)?</string> 

因为它也会找到十进制数。

  • \d 等于任意数字 (0-9)
  • + 是表示“一个或多个前一个字符”的乘数
  • (开始一个小组
  • \. 转义句号,用于实际捕获句点字符
  • \d+一位或多位数字
  • ) 结束组
  • ? 将整个组设为可选。

这应该捕获整数和十进制数。

【讨论】:

    猜你喜欢
    • 2014-12-15
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2011-05-15
    • 2014-11-06
    • 2014-12-12
    • 2017-05-11
    • 1970-01-01
    相关资源
    最近更新 更多