繁体   English   中英

正则表达式为Git提交消息

[英]Regex for Git commit message

我正在尝试提出一个正则表达式来强制执行Git提交消息以匹配某种格式。 我一直在敲击键盘修改我的半工作版本,但我无法让它完全按照我的意愿工作。 这就是我现在拥有的:

/^([a-z]{2,4}-[\d]{2,5}[, \n]{1,2})+\n{1}^[\w\n\s\*\-\.\:\'\,]+/i

这是我试图强制执行的文字:

AB-1432, ABC-435, ABCD-42

Here is the multiline description, following a blank 
line after the Jira issue IDs
- Maybe bullet points, with either dashes
* Or asterisks

目前,它匹配,但如果在问题ID之后没有空行,并且之后有多个空行,它也将匹配。

无论如何要强制执行,还是我必须忍受它?

这也很丑陋,我敢肯定有更简洁的方式来写出来。

谢谢。

你的正则表达式允许\\n作为所需换行符之后的可能字符之一,这就是为什么它在有多个时匹配的原因。

这是一个清理正则表达式:

/^([az]{2,4}-\\d{2,5}(?=[, \\n]),? ?\\n?)+^\\n([-\\w\\s*.:',]+\\n)+/i

笔记:

  • 这要求在下一个换行符之前至少有一个[-\\w\\s*.:',]字符。
  • 我将问题ID更改为按顺序包含一个可能的逗号,空格和换行符(最多一个)。 你能用前瞻吗? 如果是这样,我添加(?=[, \\n])以确保问题ID后跟至少其中一个字符。
  • 另请注意,许多字符不需要在字符类中进行转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM