【发布时间】:2019-01-29 16:43:36
【问题描述】:
我正在设置一个钩子,我需要评估一个正则表达式,但我不知道为什么不能在 bash 中使用正则表达式,我检查了 commit-msg 中的格式
MSG = "$1"
FEAT='(feat)(\:\sRQ)([0-9])+(_)(([A-Z][a-z]+)+)'
if [[ MSG =~ TEST ]] ; then
echo "yeah!!"
else
echo "oops"
exit 1
fi
这是一个有效的提交消息功能:RQ00_Hello
【问题讨论】:
-
输入实际上是什么样的?
-
MSG 是提交信息,我做了 git commit -m "feat: RQ00_Hello"
-
@xra,配置“Regex101”或任何你正在测试的 POSIX ERE 语法。 Bash 使用标准 C 库进行正则表达式匹配,因此如果您的本地平台有扩展,您有时会获得不可移植的、仅限本地操作系统的额外功能,但唯一能保证工作的是在pubs.opengroup.org/onlinepubs/009695399/basedefs/…,第 9.4 节(“扩展正则表达式”)。