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
作为所需换行符后的可能字符之一,因此这就是它在有多个时匹配的原因。
这是经过清理的正则表达式:
/^([a-z]{2,4}-\d{2,5}(?=[, \n]),? ?\n?)+^\n([-\w\s*.:',]+\n)+/i
备注:
- 这需要在下一个换行符之前至少有一个
[-\w\s*.:',]
个字符。
- 我将问题 ID 更改为有一个可能的逗号、space 和换行符,顺序为(每个最多一个)。你可以使用前瞻吗?如果是这样,我添加了
(?=[, \n])
以确保问题 ID 后跟至少一个这些字符。
- 另请注意,字符中的许多字符不需要转义 class。
我正在尝试提出一个正则表达式来强制 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
作为所需换行符后的可能字符之一,因此这就是它在有多个时匹配的原因。
这是经过清理的正则表达式:
/^([a-z]{2,4}-\d{2,5}(?=[, \n]),? ?\n?)+^\n([-\w\s*.:',]+\n)+/i
备注:
- 这需要在下一个换行符之前至少有一个
[-\w\s*.:',]
个字符。 - 我将问题 ID 更改为有一个可能的逗号、space 和换行符,顺序为(每个最多一个)。你可以使用前瞻吗?如果是这样,我添加了
(?=[, \n])
以确保问题 ID 后跟至少一个这些字符。 - 另请注意,字符中的许多字符不需要转义 class。