在ANT中使用正则表达式拆分列表

时间:2014-11-06 12:30:08

标签: regex ant ant-contrib

输入字符串: - [ABC,XYZ,MNP,AOX,3DS,K42] [BRF,FD3,ASD,45S,TSD]

我想单独打印两个列表,如

清单1: - ABC XYZ MNP AOX 3DS K42

清单2: - BRF FD3 ASD 45S TSD

目前我只能使用以下代码打印第一个列表。

<propertyregex property="lists" input="${inputString}" regexp="\[(.*)\]" select="\1" casesensitive="false" global="true" />
<echo>list 1 :-</echo>
<for list="${lists}" param="gv">
   <sequential><echo>@{gv}</echo></sequential>
</for>

请帮助我如何解决此问题。

此致 苏雷什

1 个答案:

答案 0 :(得分:1)

不需要像antcontrib这样的其他库,使用内置的javascript引擎(Java&gt; = 1.6.0_06)
ant script task这样:

<project>

 <property name="foobar" value="[abc,xyz,mnp,aox,3ds,k42] [brf,fd3,asd,45s,tsd]"/>

 <script language="javascript">
 <![CDATA[
   var lists = project.getProperty('foobar').split(' ');
   for (var i = 0; i < lists.length; i++) {
     var list = lists[i].replace('[', '').replace(']', '');
     var items = list.split(',').join().replace(/,/g, ' ') ;
     print('list ' + i + ': ' + items);
   }
 ]]>
 </script>

</project>

输出:

[script] list 0: abc xyz mnp aox 3ds k42
[script] list 1: brf fd3 asd 45s tsd