Ant regexp。读取匹配表达式的值

时间:2010-03-02 12:01:55

标签: regex ant

我需要使用从属性文件加载的适当值替换xml文件中所有出现的正则表达式。例如

  • 在xml文件中我有< port=${jnpPort}/>
  • 属性文件中的
  • 我有port=3333

我希望xml文件包含< port=3333/>

等条目

现在使用

<replaceregexp match="\$\{(.*)\}" replace="${\1}" flags="g" byline="true">
        <fileset dir="." includes="file.xml"/>
</replaceregexp>

我差不多<port=${jnpPort} />。我想从属性文件中读取$ {jnpPort}的值。

2 个答案:

答案 0 :(得分:0)

您只需使用带过滤器的副本

<filterset id="version.properties.filterset" begintoken="$" endtoken="$"> <filter token="jnpPort" value="${port}" /> </filterset>

<copy file="file.xml.template" tofile="file.xml" overwrite="true" > <filterset refid="version.properties.filterset" /> </copy>

好的,不是很好的复制,但还不错。

答案 1 :(得分:0)

尝试:

<replaceregexp match="@< port=\${jnpPort}/>@" replace="@< port=$(port)/>@" flags="g" byline="true">
        <fileset dir="." includes="file.xml"/>
</replaceregexp>