我想阅读一个文本文件,其文本如下(样本)
abc ip-32-56-198-18.com xyz
现在文本32-56-198-18
动态更新,现在我想获取此文本并创建IP地址以供进一步使用。
我使用PHP完成了这项工作,但是使用ant我遇到了问题因为我无法获得像蚂蚁这样的特定子字符串的位置。
我已经看到this提出类似的问题,但是他知道子字符串的位置我的位置太不固定,因为abc
可以是任意长度的字符串。只有ip-
和.com
才能找到足以找到所需内容的文件。
如果你们都说使用蚂蚁是不可能的,那么我可以集中注意力或做其他事情,或尝试不同的方法来解决我的问题,从ANT中删除阅读相同的计划。
感谢所有人。
更新:abc ip-23-56-89-45.com-asdhba.sip-65-59-85-12.com xyz
对于上面的例子,代码应该有用,它应该给我23-56-89-45
感谢。
答案 0 :(得分:4)
正如您提到的问题评分最高的答案所述,您可以尝试使用PropertyRegex中的Ant-conrtib。
<project>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="./ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<!-- You can load the value from file -->
<property name="input" value="abc ip-32-56-198-18.com xyz"/>
<propertyregex property="ip"
input="${input}"
regexp=".*?ip-(.*?)\.com.*"
select="\1"
defaultValue="${path}" />
<echo message="IP addr: ${ip}"/>
</project>