如何在Groovy中删除最多{(第n次出现在字符串中的模式)或(连接字符串的第n部分)}?

时间:2017-02-13 11:48:43

标签: git groovy

make test命令返回类似的输出 git describe --always --dirty

我想只提取my_tag-42-githash-dirty信息,即在此之前删除所有字符。

我做了githash-dirty作为一种解决方法。但我想要另一种解决方案,例如在Groovy中使用模式替换。或者也许是另一个专用的git命令。我怎样才能实现它?

另外,有时候,我的git标签也会包含git describe --match=NeVMatcH --always --dirty。与-

一样

1 个答案:

答案 0 :(得分:1)

我倾向于同意关于请求git而不是后处理的评论,但如果你真的需要使用groovy来处理它,你可以做类似的事情:

git describe --always --dirty | groovy -e "print System.in.text.tokenize('-').takeRight(2).join('-')"

打印:

g6d67059-dirty

即。从System.in获取输入字符串,对dash -上的字符串进行标记,该字符串为您提供列表['my','tag','42','githash','dirty'],获取列表中最右边的两个元素并使用短划线连接它们。

我不会称之为强大,但它确实适用于您的示例数据。