gpt4 book ai didi

regex - Git 流分支验证正则表达式必须以字母结尾

转载 作者:行者123 更新时间:2023-12-02 20:00:56 27 4
gpt4 key购买 nike

我正在编写一个正则表达式来验证分支名称。基本上,分支可以以功能、修补程序或版本开头,后跟斜杠。之后必须是一些字母或数字(至少一个),然后是分隔符,可以是斜线、点或线,后面跟着一些字母或数字等。但是,分支名称不能以分隔符结尾。

这就是我想出来的。

^(features?|releases?|hotfix(es)?)\/([a-z\d]+[-/_.]?)+[a-z\d]$

但是,分支名称 release/0 与应有的不匹配。但是,当我删除最后一个字符集时,分支 feature/name_ 将匹配。

最佳答案

在您的示例中,正斜杠后面是 1 个字符,由于 2 个字符类 [a-z\d]+,您的模式预计至少有 2 个字符。

一个选项是首先匹配字符类,然后重复分隔符 0 次以上,然后是字符类。

 ^(features?|releases?|hotfix(es)?)\/[a-z\d]+([-/_.][a-z\d]+)*$
  • ^ 字符串开头
  • (features?|releases?|hotfix(es)?) 匹配任意选项
  • \/[a-z\d]+ 匹配正斜杠和字符类中列出的 1+ 倍
  • ([-/_.][a-z\d]+)* 重复 0 次以上分隔符和 1 次以上字符类
  • $ 字符串结尾

Regex demo

如果您不需要捕获组()您可以将它们设置为非捕获(?:)

关于regex - Git 流分支验证正则表达式必须以字母结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55869539/

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