Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ant在不使用正则表达式的情况下提取文件中的所有子字符串_Ant_Ant Contrib - Fatal编程技术网

如何使用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"/>