String 如何从ANT中的:分隔字符串中提取第一个元素
我需要从字符串String 如何从ANT中的:分隔字符串中提取第一个元素,string,ant,String,Ant,我需要从字符串/src:./.apt_generated:中提取由“:”分隔的令牌,并将各个令牌作为列表元素获取。我试着在下面的示例中使用这个概念(尝试了使用dirsep、filesep等的一些变体)。这些都不起作用。如何从ANT中给定的字符串中获得所需的列表?我不能使用ant contib或任何其他ant库。我只需要使用核心蚂蚁 <pathconvert property="dir.1" > <path path="${srcdir.list}"/&g
/src:./.apt_generated:
中提取由“:”分隔的令牌,并将各个令牌作为列表元素获取。我试着在下面的示例中使用这个概念(尝试了使用dirsep、filesep等的一些变体)。这些都不起作用。如何从ANT中给定的字符串中获得所需的列表?我不能使用ant contib或任何其他ant库。我只需要使用核心蚂蚁
<pathconvert property="dir.1" >
<path path="${srcdir.list}"/>
<chainedmapper>
<flattenmapper/>
<mapper type="regexp" from="(.*?):.*" to="\1"/>
</chainedmapper>
</pathconvert>
<echo>dir.1 is ${dir.1}</echo>
dir.1是${dir.1}
您可以使用脚本任务
<project name="proj">
<property name="dir.list" value="./src:./.apt_generated:"/>
<script language="javascript"> <![CDATA[
var values = proj.getProperty("dir.list").split(":");
proj.setProperty("dir.1", values[0]);
proj.setProperty("dir.2", values[1]);
]]></script>
<echo message="${dir.1}" />
<echo message="${dir.2}" />
</project>
编辑。我不能确切地说出为什么制图器不工作。我认为它不仅仅是一个简单的正则表达式替换,它还有一些路径处理的逻辑
试试下面的方法
<project name="proj">
<pathconvert property="dir.1" >
<path path="./src:./.apt_generated:"/>
<chainedmapper>
<flattenmapper/>
<identitymapper/>
</chainedmapper>
</pathconvert>
<echo>dir.1 is ${dir.1}</echo>
</project>
dir.1是${dir.1}
您可以看到,即使它是identity mapper,它也会从字符串中删除一些字符。只是为了更好地学习ANT,您能告诉我为什么上面的操作不起作用吗?这正是我在问题中使用的链接的逻辑?