正则表达式排除特定字符

时间:2018-12-03 14:04:24

标签: regex git

我在git中有以下可用标签。

popup/0.0.998
popup/14.0.999
popup/54.33.99
popup/20160729/0.0.624
popup/20160730/1.55.624
popup/20160930/99.44.783

在这些标签中,我只想关注并排除其他标签。那就是我只希望标签popup/natural_number.natural_number.natural_number具有这种格式。

popup/0.0.998
popup/14.0.999
popup/54.33.99

我使用了以下命令,但它仍在提供以下标签-

使用的命令:git tag -l 'popup/[0-9]*\.[0-9]*\.[0-9]*'

提供所有标签:

popup/0.0.528
popup/140.42.409
popup/54.323.726
popup/20160729/0.0.624
popup/20160730/1.55.624
popup/20160930/99.44.183

请提出,我该如何实现。

2 个答案:

答案 0 :(得分:2)

git tag不使用正则表达式,它返回某些内容的原因是因为它接受文件名扩展或glob。您可以改用grep

git tag -l | grep -P '^popup/\d+\.\d+\.\d+$'

答案 1 :(得分:0)

您可能必须转义反斜杠:

popup/[0-9]*\\.[0-9]*\\.[0-9]*

我已经使用grep进行了测试,并且可以正常工作:

$ cat tags
popup/0.0.998
popup/14.0.999
popup/54.33.99
popup/20160729/0.0.624
popup/20160730/1.55.624
popup/20160930/99.44.783
$ cat tags | grep popup/[0-9]*\\.[0-9]*\\.[0-9]*
popup/0.0.998
popup/14.0.999
popup/54.33.99