使用Ant或Phing在属性中存储值



使用Ant或Phing,我需要将文件的内容加载到属性中,对该属性的值运行正则表达式,然后将该正则表达式的结果存储在另一个属性中。最好的方法是什么?

我可以轻松地将文件加载到属性中(使用Phing),如下所示:

<loadfile file="myfile.txt" property="my.file" />

我知道如何更新文件,但我似乎不知道如何在该属性上运行正则表达式,并将结果存储在新属性中以供将来使用。

任何帮助都将非常感激!

更新

我一直在修补它,这将工作。如果有简化的方法,请告诉我!下面的代码将文件加载到属性中,然后将其减少到仅包含title标记的行。然后,它在该行运行一个正则表达式,并将该标记的内容存储在my.prop中。

<loadfile file="../index.html" property="my.prop">
  <filterchain>
     <linecontainsregexp>
        <regexp pattern="&lt;title>" />
    </linecontainsregexp>
    <replaceregexp>
        <regexp pattern="[sS]+<title>(.+?)</title>" replace="$1" />
    </replaceregexp>
  </filterchain>
</loadfile>

更新2

实际上,我最终使用adhoc任务来创建我自己的任务。完美的工作!

您可以像这样从ant目标运行任意命令:

<exec executable="bash">
   <arg line="script.sh"/>
</exec>

例如,您可以将regexp的结果存储在tmp文件中,然后将其加载到另一个属性中,方法与初始属性相同。

在php中,您可以处理使用"php"任务加载文件的属性的内容。见:http://www.phing.info/docs/guide/stable/chapters/appendixes/AppendixB-CoreTasks.html PhpEvalTask

相关内容

  • 没有找到相关文章

最新更新