我有一个文件,包含以下以"|"分隔的字符串行,
C:TempdemoAAA.dat | C:testinputAAA.dat
C:TempbuildBBB.bat | C:testjavaBBB.bat
C:TemptestCCC.xml | C:AppsftpCCC.xml
读取每行后,我希望提取出以"|"分隔的每个字符串,比如,在我得到第一行之后,我需要得到C:TempdemoAAA.dat和C:testinputAAA.dat;请帮助我如何使用蚂蚁来做??
我使用下面的代码,我只能得到每一行:
<loadfile property="filelist" srcfile="C:Tempfile1.txt"/>
<target name="test" depends="chkInput" description="test">
<for param = "line" list="${filelist}" delimiter="${line.separator}">
<sequential>
<echo>@{line}</echo>
</sequential>
</for>
</target>
不是每个子字符串由"|"分隔,请帮助如何得到每个子字符串由"|"分隔?
一旦您有了行,您可以使用<propertyregex>
将这两部分分开。
<for param = "line" list="${filelist}" delimiter="${line.separator}">
<sequential>
<echo>@{line}</echo>
<var name="first.part" unset="true"/>
<var name="second.part" unset="true"/>
<propertyregex
property="first.part"
input="@{line}"
regex="^([^s]*)"
select="1"/>
<propertyregex
property="second.part"
input="@{line}"
regex="|s*([^s]*).*$"
select="1"/>
</sequential>
</for>
注意,您必须使用<var/>
任务来取消属性(否则,您不会更改属性),或者使用新任务来声明该属性是<sequential/>
实体的本地属性。