如何使用ant在不使用正则表达式的情况下提取文件中的所有子字符串
我有一个文件有许多行,例如:如何使用ant在不使用正则表达式的情况下提取文件中的所有子字符串,ant,ant-contrib,Ant,Ant Contrib,我有一个文件有许多行,例如: aaa bbb ccc ddd eeee a111 b111 c111 d111 A222 B222 X222 Y222 Z222 FFF GGG HHH 等 我希望使用ant来提取这个文件中的所有子字符串 aaa bbb ccc ddd eeee a111 b111 c111 d111 A222 B222 X222 Y222 Z222 FFF GGG HHH 每行 所有aaa bbb ccc ddd eee在第一线, 最后一行中的所有F
aaa bbb ccc ddd eeee
a111 b111 c111 d111
A222 B222 X222 Y222 Z222
FFF GGG HHH
等
我希望使用ant来提取这个文件中的所有子字符串
aaa bbb ccc ddd eeee
a111 b111 c111 d111
A222 B222 X222 Y222 Z222
FFF GGG HHH
每行
所有aaa bbb ccc ddd eee在第一线,
最后一行中的所有FFF GGG HHH等
请帮助如何做,但不使用正则表达式
我的代码是:
<for list="@{line}" delimiter=" " param = "val">
<sequential>
<echo>in sequential : @{line}</echo>
<var name="first.part" value="1"/>
<var name="second.part" value="2"/>
<var name="third.part" value="3"/>
<propertyregex
property="first.part"
input="@{line}"
select="\0"/>
<propertyregex
property="second.part"
input="@{line}"
select="\1"/>
<propertyregex
property="third.part"
input="@{line}"
select="\2"/>
<echo> after assign: 1st.part = ${first.part}</echo>
<echo> after assign: 2nd.part = ${second.part}</echo>
<echo> after assign: 3rd.part = ${third.part}</echo>
</sequential>
</for>
按顺序:@{line}
赋值后:1st.part=${first.part}
赋值后:第2.part=${second.part}
赋值后:3rd.part=${third.part}
但是ant 1.6不支持正则表达式,
我得到一个错误:
该类型不支持“regex”属性
如何修复它???
谢谢,ANT不是一种编程语言。您最好嵌入一个 以下示例使用: 更新 启用groovy任务的另一种方法是使用类路径引用,如下所示:
<path id="build.path">
<pathelement location="/path/to/groovy-all/jar/groovy-all-2.1.3.jar"/>
</path>
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
ANT 1.6于2003年发布。。。。ANT 1.7在2006年取代了它,并引入了重大变化。我强烈建议升级我下载的groovy-all-2.1.3.jar并放入classpath。测试代码:C:\ant\build>ant-f buildx.xml构建文件:buildx.xml扫描:构建失败C:\ant\build\buildx.xml:9:无法创建任务或类型为groovy的类型。Ant找不到该任务所依赖的任务或类。这是常见的,有很多原因;通常的解决方案是阅读手册页面,然后下载并安装所需的JAR文件,或者修复构建文件:@dateboyTom首先运行“bootstrap”目标(ant bootstrap)。我创建这个目标是为了方便配置build以使用groovy。看看代码,它所做的是下载groovy jar,并将其放入一个可以访问ANT下次运行的位置。(类似于您启用“for”任务的方式。这需要第三方ant-contib.jar文件,默认情况下,该文件不随ant一起提供)。我添加:在buildx.mail中,run,C:\ant\build>ant run-f buildx.xml Buildfile:C:\ant\build\buildx.xml run:buildFAILED@dateboyTomgroovy任务不是ant contrib的一部分。这可以解释您所遇到的“无法创建”错误。我的回答提供了一个完整的工作示例。运行bootstrap目标(即键入“ant bootstrap”),它将从Maven Central下载groovy jar,并将其放置在ant用于存储第三方任务jar的位置。
scan:
[echo] Extracted values: [aaa, bbb, ccc, ddd, eeee]
[echo] Need to so something with aaa
[echo] Need to so something with bbb
[echo] Need to so something with ccc
[echo] Need to so something with ddd
[echo] Need to so something with eeee
[echo] Extracted values: [a111, b111, c111, d111]
[echo] Need to so something with a111
[echo] Need to so something with b111
[echo] Need to so something with c111
[echo] Need to so something with d111
[echo] Extracted values: [A222, B222, X222, Y222, Z222]
[echo] Need to so something with A222
[echo] Need to so something with B222
[echo] Need to so something with X222
[echo] Need to so something with Y222
[echo] Need to so something with Z222
[echo] Extracted values: [FFF, GGG, HHH]
[echo] Need to so something with FFF
[echo] Need to so something with GGG
[echo] Need to so something with HHH
<path id="build.path">
<pathelement location="/path/to/groovy-all/jar/groovy-all-2.1.3.jar"/>
</path>
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>