希望你一切都好,
我是GitLab的新手,我试图添加一个推送规则来限制推送操作。我有这个regex:
^(build|test)(: ([a-z].{0,70}[^\\.]\s+))(\((JIRA|CARD)-[0-9]+)\)\n$\n(^Team: (Dragons|Eagles))$
在GitLab中配置,这是正确的提交消息
test: testing commit message (JIRA-1235)
Team: Dragons
但是如果我发送一个像这样的提交消息:
test: testing commit message (JIRA-1235)
Team: Dragons
test: testing commit message (JIRA-1235)
Team: Dragons
由于正则表达式匹配提交/推送成功,我如何将正则表达式限制为一个匹配,而不允许多个消息/匹配。
1条答案
按热度按时间ncgqoxb01#
GitLab CI uses the re2 engine ;这个引擎supports
\A
和\z
锚,它们相应地匹配字符串的最开始和最结束。简单地使用它们而不是^
和$
。也就是说,新的正则表达式应该看起来像这样:试试on regex101.com。
请注意,它是
\z
,带有一个z
。这很容易与\Z
混淆,在PCRE和.NET等支持的引擎中,\Z
匹配字符串的结尾(与\z
相同)或最后一行结束符之前的位置(如果它也是字符串的最后一个字符)。