【问题标题】:How to write a regex expression for custom syntax highlighting如何为自定义语法高亮编写正则表达式
【发布时间】:2020-05-21 18:13:36
【问题描述】:

我想编写一个匹配以下文本的正则表达式:

200502-title-of-something

我希望表达式匹配任何出现的六位数日期,后跟由破折号分隔的文本字符串。

我在 sublime-syntax 文件 (YAML 1.2) 中使用它来自定义语法突出显示。

【问题讨论】:

  • 这非常接近,除了它还匹配破折号之后的任何数字。有没有办法将其限制为仅出现在以六位数日期开头的字符串中的数字?
  • 您应该编辑您的问题以包含您迄今为止尝试过的内容。
  • 日期是否已定义格式?也就是说,是否有必要只匹配一个日期而不是像998877这样的字符串?
  • 欢迎来到 SO!你研究过这个吗?在哪里?如果它没有帮助告诉我们原因。你尝试了什么?如果你不尝试,为什么不呢?如果你做了,你做了什么?我们希望看到您最小的尝试来解决它。请阅读“How to Ask”和链接页面和“Stack Overflow question checklist

标签: regex sublimetext3 syntax-highlighting


【解决方案1】:

我希望表达式匹配任何出现的六位数日期\d{6}
后跟一串文字[a-zA-Z]+
用破折号分隔-

总结一下:

\b\d{6}(?:-[a-zA-Z]+)+\b

地点:

  • \b 是单词边界
  • - 一个连字符
  • [a-zA-Z]+ 匹配 1 个或多个字母的字符类
  • (?:...)+ 非捕获组,可能出现 1 次或多次

Demo & explanation

【讨论】:

  • 谢谢!完美运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
相关资源
最近更新 更多