首页 > 解决方案 > git commit-msg 钩子的正则表达式问题

问题描述

我正在尝试写入 git commit-msg 钩子以在提交之前检查我的提交文本格式。我希望承诺像“AJ-XX sometext”。其中 XX 是数字,然后是空格和一些文本。而且我的代码不起作用,我 99% 确定我有错误的正则表达式,你能帮我写正确的吗?它看起来像这样:

export REGEX='(AJ'-'0-90-9 )'
export ERROR_MSG="Commit message format must match regex \"${REGEX}\""

它应该接受这样的东西 - “AJ-54 这是提交”

标签: regexgitcommit

解决方案


您可以尝试以下符合 POSIX ERE 的正则表达式:

export REGEX='^AJ-[0-9]{2} .*'

如果您的正则表达式风格是 POSIX BRE,您可以使用

export REGEX='^AJ-[0-9]\{2\} .*'

如果你不能使用正则表达式并且只能使用通配符/全局模式,你可以使用

export REGEX='AJ-[0-9][0-9] *'

推荐阅读