使用ant从文本文件读取动态子字符串
我想读一个文本文件,其文本如下(示例)使用ant从文本文件读取动态子字符串,ant,Ant,我想读一个文本文件,其文本如下(示例) abc ip-32-56-198-18.com xyz 现在文本32-56-198-18会动态更新,现在我想获取此文本并创建ip地址以供进一步使用 我已经使用PHP完成了这项工作,但是对于ant,我遇到了问题,因为我无法获得特定子字符串(如PHP)在ant中的位置 我见过类似的问题,但他知道子字符串的位置我的位置太不固定了,因为abc可以是任何长度的字符串。只有ip-和.com是修复程序,足以找到所需的 如果你们都说使用ant是不可能的,那么我可以集中精力
abc ip-32-56-198-18.com xyz
现在文本
32-56-198-18
会动态更新,现在我想获取此文本并创建ip地址以供进一步使用
我已经使用PHP完成了这项工作,但是对于ant,我遇到了问题,因为我无法获得特定子字符串(如PHP)在ant中的位置
我见过类似的问题,但他知道子字符串的位置我的位置太不固定了,因为abc
可以是任何长度的字符串。只有ip-
和.com
是修复程序,足以找到所需的
如果你们都说使用ant是不可能的,那么我可以集中精力或做其他事情,或者尝试不同的方法来解决我的问题,放弃从ant读取相同内容的计划
谢谢大家
更新:abc ip-23-56-89-45.com-asdhba.sip-65-59-85-12.com xyz
对于上面的例子,代码应该可以工作,它应该给我23-56-89-45
谢谢。正如您提到的问题的最受欢迎答案中所说的,您可以尝试使用from
正如您提到的问题的最受欢迎答案中所说的,您可以尝试使用from
你能在substring()中尝试indexOf()吗?你能在substring()中尝试indexOf()吗?:你的代码可以工作,但在我的text.com中再次出现,你的代码在.com
的第一次出现时并没有停止。它更进一步,在的最后一次出现时停止。com
请帮助……请不要说使用两次相同的代码!这应该是最后一个选项。对于更新后的问题,我使用了regexp=“.*ip-(.*)\.com(.*)\.com”
,这是我们选择\1
,这意味着我们使用的是第一个,如果我使用\2
,则会给出第二个文本。再次感谢。@IAH2iV我已将示例中的regexp更新为ungreedy match。现在,它可以与您的两个输入一起工作。注意:您的代码可以工作,但在my text.com中,您的代码不会在第一次出现.com
时停止。它会更进一步,并在最后出现.com
时停止。请帮助……请不要说使用两次相同的代码!这应该是最后一个选项。对于更新后的问题,我使用了regexp=“.*ip-(.*)\.com(.*)\.com”
,这是我们选择\1
,这意味着我们使用的是第一个,如果我使用\2
,则会给出第二个文本。再次感谢。@IAH2iV我已将示例中的regexp更新为ungreedy match。现在它与您的两个输入一起工作。
<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>