2014-11-06 64 views
0

輸入字符串: - [ABC,XYZ,MNP,AOX,3DS,K42] [BRF,FD3,房間隔缺損,45S,TSD]使用正則表達式ANT分裂名單

我要同時打印列表分別像

列表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

無需像antcontrib附加的庫,使用內建JavaScript引擎(爪哇> = 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