我有一个字符串,其版本为.v_september (每个月都会有所不同)。在这里,我想取下划线后的值,意思是"sep" (仅前3个字母)。
通过使用regex .v_(.*),我可以花整整一个月的时间,而不能只获得前3个字母。
有人能帮我解决我如何在Apache中实现这一点吗?谢谢!
发布于 2019-03-19 09:41:48
属性上的Regex函数在本机Ant中有点笨拙(与在文件中处理文本不同)。Ant-cont肋骨有replaceregexp
任务,但我尽量避免任何可能的蚂蚁竞争.
相反,它可以通过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}" />
关于regex模式,请注意它需要如何以.*
结束。这是因为Ant没有一个简单返回捕获组内容的"match“函数。它只是在运行一个替换,所以我们需要替换不属于组的字符串中的所有内容。
发布于 2019-03-18 22:30:42
https://stackoverflow.com/questions/55234832
复制相似问题