string - 替换 Ant 属性中的字符

标签 string ant

有没有一种简单的方法可以获取属性的值,然后将其复制到另一个属性并替换某些字符?

propA=这是一个值。我想将其中的所有空格替换为下划线,从而得到 propB=This_is_a_value

最佳答案

这是没有脚本的解决方案,也没有像 ant-conrib 这样的外部 jar:

诀窍是使用 ANT 的资源:

  • 有一种称为“propertyresource”的资源类型,它类似于源文件,但提供来自该资源的字符串值的流。因此您可以加载它并在任何接受文件的任务(例如“复制”)中使用它
  • 还有一个任务“loadresource”可以将任何资源加载到属性(例如文件),但是这个任务也可以加载我们的属性资源。此任务允许通过应用一些标记转换来过滤输入。最后,以下内容将满足您的要求:
<loadresource property="propB">
  <propertyresource name="propA"/>
  <filterchain>
    <tokenfilter>
      <filetokenizer/>
      <replacestring from=" " to="_"/>
    </tokenfilter>
  </filterchain>
</loadresource>

这会将 propA 中的所有“”替换为“_”,并将结果放入 propB 中。 “filetokenizer”将整个输入流(我们的属性)视为一个标记,并在其上应用字符串替换。

您可以使用其他标记过滤器进行其他奇特的转换:http://ant.apache.org/manual/Types/filterchain.html

关于string - 替换 Ant 属性中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176071/

相关文章:

ant - 如果属性不为空,如何使 ant 构建失败

Grails ant 任务无法工作 - 无法启动 Grails : java. lang.reflect.InitationTargetException

iphone - UIWebView 加载已解析的 html 字符串

java - 字符串连接在这里如何工作?

windows - 创建一个带有英文标题栏的 Win32 Window 应用程序,但标题栏突然变成了中文。怎么来的?

C编程: How to make program end when user inputs a newline

java - 如何在 Eclipse 中将 .jar 标记为 "provided"

jQuery 将字符串转换为对象而不使用 eval()

ant - 创建跨平台Java SWT应用程序

ant - 检查两次antcall是否成功