使用ant从文本文件中读取动态子字符串

时间:2011-08-05 14:53:59

标签: ant

我想阅读一个文本文件,其文本如下(样本)
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 感谢。

1 个答案:

答案 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>