RegEx 接受字符串、# 和数字

RegEx to accept String, # and a number

我正在尝试添加提交消息挂钩以在 Gitlab 中接受以下输入:

bug 12345
bug #12345
BUG # 12345
Bug#12345
bug12345

数字 12345 应更改为任何 5 位或 6 位数字(不小于,不大于)

应该从Bug、BUG还是bug入手

除# 或 space 外,不应有任何其他字符或数字和字符串之间的空白 "Bug/bug/BUG"

我需要尽快获得帮助。

我试图通过以下方式实现这一目标:

^(BUG|bug|Bug)\ |#\d+

但这没有给出所需的输出。我正在参考 :

  1. https://regex101.com/
  2. https://github.com/google/re2/wiki/Syntax

非常感谢。

您可以使用

^(BUG|bug|Bug) *(?:# *)?\d{5,6}$

regex demo

如果只想不区分大小写地匹配bug,可以写成(?i)^Bug *(?:# *)?\d{5,6}$.

要匹配任何空格,请将模式中的文字空格替换为 \s 结构。

更多详情:

  • ^ - 字符串开头
  • (BUG|bug|Bug) - BUGbugBug
  • *(?:# *)? - 零个或多个空格后跟一个可选序列 # 后跟零个或多个空格
  • \d{5,6} - 五六位数
  • $ - 字符串结尾。