gpt4 book ai didi

ruby - Git 提交消息的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:12 25 4
gpt4 key购买 nike

我正在尝试提出一个正则表达式来强制 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 更改为具有一个可能的逗号、空格和换行符,顺序为(最多一个)。你可以使用前瞻吗?如果是这样,我添加了 (?=[,\n]) 以确保问题 ID 后跟至少一个这些字符。
  • 另请注意,字符类中的许多字符不需要转义。

关于ruby - Git 提交消息的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com