微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用模式 digit.digit.digit 提取所有 git 标签

如何解决使用模式 digit.digit.digit 提取所有 git 标签

我有一个 git 标签列表:

0.0.1
0.0.1-rc.0
0.0.1-rc.1
0.1.0
0.10.0
0.10.1-rc.0
0.11.0
0.11.1-rc.0
0.12.0
0.12.1-rc.0
0.13.0
0.13.1-hotfix.0
0.13.1-rc.0
0.14.0
0.14.1-rc.0
0.15.0
0.15.1-rc.0
0.16.0
0.16.1-rc.0
0.17.0
0.17.1-rc.0
0.18.0
0.18.1-hotfix.0

我的目标是提取具有此模式的所有标签:digit.digit.digit。这个标签是:

0.0.1,0.1.0,0.10.0,0.11.0,0.12.0,0.13.0,0.14.0,0.15.0,0.16.0,0.17.0,0.18.0,0.10.0

我试过这些表达式,但没有一个给我我需要的结果:

git tag --list "[[:digit:]]\.[[:digit:]]\.[[:digit:]]" :
   0.0.1
   0.1.0

git tag --list "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" : no result

有什么想法吗?

解决方法

git tag --list 接受 wildcard (glob) patterns,而不是正则表达式。所以试试

git tag -l '[0-9]*.[0-9]*.[0-9]*'

要使用正则表达式进行过滤,请使用 grep 等外部工具:

git tag --list | grep -E "^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。