regex - 基于模式的 Git 标签
问题描述
我们的存储库中有不同版本的标签。仅假设该类型仅出现一次,才需要获取特定的图案化标签。例如
v1.1.0
1.0
v1.0
v0.1.0-0.20201201002611-5424ca76ab3e
v1.2.0-alpha
如何获得仅遵循 v0.1.0-0.20201201002611-5424ca76ab3e 的特定内容
我有正则表达式
v[0-9]*.[0-9]*.[0-9]-0.\d{14}-\b[0-9a-f]{12}\b
我尝试使用它,git describe --match "v[0-9]*.[0-9]*.[0-9]-0.\d{14}-\b[0-9a-f]{12}\b" --abbrev=0 --tags $(git rev-list --tags)
但似乎不起作用。还有其他方法可以获取具有特定格式的标签吗?
解决方案
您可以使用以下 POSIX BRE 模式:
'v[0-9]*\(\.[0-9]*\)\{2\}-0\.[0-9]\{14\}-[0-9a-f]\{12\}'
在哪里
v
- 火柴v
[0-9]*
- 零个或多个数字\(\.[0-9]*\)\{2\}
- 两次重复.
和零个或多个数字-0\.
- 一个0.
字符串[0-9]\{14\}
- 十四位数-
- 一个连字符[0-9a-f]\{12\}
- 十二位数字或小写字母。
推荐阅读
- python - 通过代理的 RPyC 连接
- html - 处理 React jsx 文件,我想添加渲染的动态图像
- azure - 无法将 azure cloud-init 部署中的烧瓶应用要求安装到 vmss
- c# - 泛型类型推断 - 泛型类型的泛型
- python - Python mysql存储过程callproc()不起作用
- redirect - 通过更改 url 使用 Puppeteer 重定向 url
- javascript - JQuery - 调整窗口大小时重新计算不正确
- cron - 每天运行但不在窗口上运行的 Cron 表达式
- c++ - 如何迭代行对齐像素的子集
- join - 错误:对象比较只能与 OneToOneMappings 一起使用