我想将unfiled$public
替换为unfiled\$public
,我正在使用以下ant任务 -
<replaceregexp match="unfiled$public" replace="unfiled\$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
但这不是诀窍。我知道$必须逃脱。我也尝试了这个也没有结果 -
<replaceregexp match="unfiled\\$public" replace="unfiled\\\\\$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
答案 0 :(得分:0)
试试这段代码:
<replaceregexp match="unfiled$$public" replace="unfiled\$$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
正如一些编制者所说的那样,使用双 $$ 来逃避 $ 。如果这不起作用,您可以尝试保持替换不受影响:replace="unfiled\$public"
并且只能转义匹配:
<replaceregexp match="unfiled\$public" replace="unfiled\$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
答案 1 :(得分:0)
您(很可能)不需要双重转义反斜杠,因为它们在XML字符串中使用(具有其他转义规则,如&
等)。
所以试试:
<replaceregexp match="unfiled\$public" replace="unfiled\$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
答案 2 :(得分:0)
尝试:
<replaceregexp match="unfiled$public" replace="unfiled\\$public" flags="gs" byline="false" >
<fileset dir="my_dir" />
</replaceregexp>
答案 3 :(得分:0)
在替换属性中,美元符号必须写为 \\\$
,因为美元符号必须在正则表达式替换部分中转义,结果为 \$
和 for Ant这两个字符必须再次转义:\\
+ \$
。