Ant tokenfilter在每行的开头添加字符串并删除换行符

时间:2013-04-11 09:27:47

标签: regex ant

我需要从文件加载属性并按以下方式更改字符串:

prop1=value1
prop2=value2

prop3=value3

进入:

-Pprop1=value1 -Pprop2=value2 -Pprop3=value3

(基本上我想在每行的开头添加-P并删除换行符)

我以下列方式使用tokenfilter

<loadfile property="temp.properties" srcFile="${properties.file}">
    <filterchain>
        <tokenfilter delimoutput=" -P">
            <ignoreblank />
        </tokenfilter>
    </filterchain>
</loadfile>

这种方法的问题是,假设文件以空的新行结尾,我得到以下字符串:

prop1=value1 -Pprop2=value2 -Pprop3=value3 -P
  1. 我没有在第一个属性上获得-P(没有与文件末尾的换行符有关)。只需将-P字符串与结果字符串
  2. 连接起来,就可以轻松克服这一问题
  3. 我需要克服的一个问题是最后的 -P 。有人建议解决这个问题吗?
  4. 另外,一个很好的补充是忽略属性注释 - 以#开头的行,但如果它太复杂了,那就不重要了。

    由于

1 个答案:

答案 0 :(得分:3)

以下是否适用于您?

<filterchain>
  <replaceregex pattern="^[#].*" replace="" />
  <ignoreblank />
  <prefixlines prefix=" -P" />
  <striplinebreaks />
</filterchain>