2011-12-01 63 views
2

我有以下幾點:螞蟻propertyregex的行爲出現異常

<propertyregex property="myProp" input="${someInput}" 
       regexp="(.*)" 
       replace="-f -d '\1'" 
       override="true"/> 

的propertyregex的目的是採取someInput的價值,並把它單qoutes內,並與-f和-d標誌前面加上它。 如果我設置someInput到MyString的,我希望會是這個結果:

-f -d 'myString' 

,但我得到:

-f -d 'myString'-f -d '' 

誰能解釋其中尾隨-f -d'從何而來?

回答

0

正則表達式匹配兩次。一旦它匹配整個字符串,然後匹配字符串末尾的空字符串(因爲星號允許零長度匹配)。

使用

<propertyregex property="myProp" input="${someInput}" 
       regexp="^.*" 
       replace="-f -d '\0'" 
       override="true"/> 

\0包含了整場比賽,所以你也不需要捕獲括號)。

另請參閱this question

+0

非常感謝Tim! – Liz