我有以下蚂蚁任务:
<loadfile property="proj.version" srcfile="build.py">
<filterchain>
<striplinecomments>
<comment value="#"/>
</striplinecomments>
<linecontains>
<contains value="Version" />
</linecontains>
</filterchain>
</loadfile>
<echo message="${proj.version}" />
输出
[echo] config ["Version"] = "v1.0.10-r4.2"
如何使用标记生成器仅获取v1.0.10-r4.2
,相当于
| cut -d'"' -f4
答案 0 :(得分:3)
您可以在filterchain
中使用containsregex
元素作为tokenfilter
。
这应过滤其中包含"Version"
的所有行,并作为内容返回唯一捕获的群组:“vx.y.zz....
”
&LT; containsregex
图案= “^。?\” 版\ “ \ ”(V [^ \“] +?)\”。”
replace =“\ 1”/&gt;
不起作用。
可能是&lt; containsregex
图案= '^。? “版本”。 “(V [^ \”] +?)”。'
replace =“\ 1”/&gt;
可以工作(使用parameter
属性的单引号,允许参数值内的非转义双引号)
功能
实际上,OP John Oxley提供了一个工作解决方案,双引号(\"
)替换为"
:
<containsregex
pattern="^.*?"Version".*"(v[^"]+?)".*"
replace="\1" />