gpt4 book ai didi

java - 在 Ant 属性(property)中间逃脱一美元

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:34 25 4
gpt4 key购买 nike

我有一个属性,其值包含一个 $。我想将此属性用作 propertyregexp 中的正则表达式。 Ant 似乎将该属性解析为 propertyregexp 的参数,但随后美元被解释为正则表达式符号。

例子:

<property name="a" value="abc$" />
<property name="b" value="xyz" />
<path id="paths">
<pathelement location="abc$/def" />
<pathelement location="abc$/ghi" />
</path>
<pathconvert property="list" refid="paths" pathsep="${line.separator}" dirsep="/" />
<propertyregex property="list" input="${list}" override="true" regexp="${a}(.*)" replace="${b}\1" />
<echo message="${list}" />

我想要一对 xyz/defxyz/ghi。这可能吗?我正在使用 Ant 1.8。

最佳答案

哎呀,不知何故我没有仔细阅读您的评论,但是尽管如此,这是一个有效的方法玩具解决方案;-)

<project name="project" default="main">

<taskdef resource="net/sf/antcontrib/antlib.xml"/>

<property name="a" value="abc$" />
<property name="b" value="xyz" />
<path id="paths">
<pathelement location="abc$/def" />
<pathelement location="abc$/ghi" />
</path>

<target name="main">

<pathconvert property="list" refid="paths" pathsep="${line.separator}" dirsep="/" />
<propertyregex property="a" input="${a}" override="true" regexp="\$" replace="" />
<propertyregex property="list" input="${list}" override="true" regexp="\$" replace="" />
<propertyregex property="list" input="${list}" override="true" regexp="${a}" replace="${b}" />
<echo>${list}</echo>
</target>

</project>

结果:

main:
[echo] /foobar/AntScripts/xyz/def
[echo] /foobar/AntScripts/xyz/ghi
BUILD SUCCESSFUL

IMO,使用带有'$'的属性是自找麻烦,难道没有别的办法吗?!

关于java - 在 Ant 属性(property)中间逃脱一美元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com