[英]How to get the index by regular expression in ANT
我有一个字符串,其版本为.v_september (每个月都会有所不同)。 在此,我想在下划线之后取值,这意味着“ sep” (仅前3个字母)。
通过使用正则表达式.v _(。*),我可以使用完整的月份,而不能仅获得前3个字母。
有人可以帮助我如何在Apache ANT中实现这一目标。 谢谢 !
正则表达式的属性函数在本机Ant中有点尴尬(与在文件中使用文本相反)。 Ant-contrib具有replaceregexp
任务,但我尝试尽可能避免使用ant-contrib。
而是可以通过loadfile
任务和嵌套过滤器来完成:
<property name="version" value=".v_september" />
<loadfile property="version.month.short">
<propertyresource name="version" />
<filterchain>
<tokenfilter>
<replaceregex pattern="\.v_(.{3}).*" replace="\1" />
</tokenfilter>
</filterchain>
</loadfile>
<echo message="${version.month.short}" />
关于正则表达式模式,请注意它需要如何以.*
结尾。 这是因为Ant没有简单地返回捕获组内容的“匹配”功能。 它只是在进行替换,因此我们需要替换字符串中不属于该组的所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.