在两个'_'之间提取字符串

时间:2014-07-08 12:26:49

标签: regex string ant

我正在寻找一个ANT正则表达式来提取两个_之间或abc__之间的字符串 以下是正在尝试的正则表达式,没有运气。

/xxx/xx_x/xxxx/abc_stringtoextract_x.x.zip

我需要抓取stringtoextract

<propertyregex property="name"
     input="@{process}"
     regexp="(?<=abc_)(.*?)(?=\_)" 
     select="\1"
     casesensitive="false"/>
<echo>@{process}</echo>

2 个答案:

答案 0 :(得分:2)

<替换为字符实体&lt;。此外,结果也会保存在name属性中指定的property属性中,而不是process参数中,因此您应该echo得到正确的结果。

<propertyregex property="name"
    input="${process}"
    regexp="(?&lt;=abc_)(.*?)(?=\_)" 
    select="\1"
    casesensitive="false"/>
<echo>${name}</echo> <!-- instead of process -->

答案 1 :(得分:0)

.*abc_([^_]*) 

修正了问题。