如何编写符合指定格式要求的Git提交注释校验正则表达式
正确的提交注释校验正则表达式
最终符合所有要求的正则如下:
^(RGT|UYT|WWB)-\d{4} \| [0-9a-zA-Z\s]+$
原正则的问题说明
你之前的写法存在以下错误:
- 错误将整段规则包裹在字符组
[]中,字符组仅能匹配内部任意单个字符,无法实现多段规则的顺序匹配逻辑 - 未添加起始锚定符
^,会出现字符串前包含其他无关内容也能校验通过的问题 - 末尾的变更描述规则未添加量词
+,仅能匹配单个字符,无法支持多字符的描述内容
规则对应说明
可以拆分正则逐段对应你的规范要求:
^(RGT|UYT|WWB):从字符串开头匹配三个可选项目代码之一,确保注释开头符合规范-\d{4}:紧跟短横线后匹配4位纯数字,对应变更编码要求\|:依次匹配空格、|符号、空格,完全符合分隔符格式要求[0-9a-zA-Z\s]+$:从分隔符后到字符串结尾,匹配至少一个由数字、英文字母、空白字符组成的内容,对应变更描述要求
注意事项
如果不允许变更描述中出现换行、制表符等特殊空白字符,仅允许普通空格,可以将正则调整为:
^(RGT|UYT|WWB)-\d{4} \| [0-9a-zA-Z ]+$
校验示例
- 可通过校验:
UYT-7905 | Changes to implement latest - 不可通过校验:
- 开头项目码错误:
ABC-1234 | test - 变更编码不足4位:
RGT-123 | test - 分隔符格式错误:
WWB-1234 |test - 描述含特殊字符:
UYT-7905 | test!@#
- 开头项目码错误:
内容的提问来源于stack exchange,提问作者learningToCode
相关产品推荐
相关产品推荐

