Муравей Propertyregex ведет себя странно - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть следующее:

<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 ''?

1 Ответ

0 голосов
/ 01 декабря 2011

Регулярное выражение совпадает дважды. Как только он совпадает со всей строкой, а затем совпадает с пустой строкой в ​​конце строки (поскольку звездочка допускает совпадения нулевой длины).

Использование

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

(\0 содержит все совпадения, поэтому вам также не нужны захватывающие скобки).

См. Также этот вопрос .

...