我有以下内容:
<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 :(得分:0)
正则表达式匹配两次。一旦它匹配整个字符串,然后它匹配字符串末尾的空字符串(因为星号允许零长度匹配)。
使用
<propertyregex property="myProp" input="${someInput}"
regexp="^.*"
replace="-f -d '\0'"
override="true"/>
(\0
包含整个匹配,因此您也不需要捕获括号。)