Ant replaceregexp任务 - 匹配并替换HTML注释块

时间:2011-11-04 00:04:41

标签: regex apache ant

我有以下以HTML注释开头和结尾的块:

    <!--source scripts-->
    <script type="text/javascript" src="/assets/js/namespaces.js"></script>
    <script type="text/javascript" src="/assets/js/main.js"></script>
    <script type="text/javascript" src="/assets/js/header.js"></script>
    <script type="text/javascript" src="/assets/js/headerPremiumForm.js"></script>
    <script type="text/javascript" src="/assets/js/bootstrap.js"></script>
    <!--end source scripts-->

我创建了一个ant任务,找到<!--source scripts--><!--end source scripts-->之间的所有内容,并用新的脚本文件(在本例中为min.js)替换它,但是我无法使其工作。

这是我到目前为止所做的:

<target name="update-source-with-new-compiled-files">
    <replaceregexp match="\&lt;!--source scripts--\&gt;(.*?)\&lt;!--end source scripts--\&gt;" replace="\&lt;script src='min.js'\&gt;\&lt;/script\&gt;" flags="g">
        <fileset dir="${basedir}/../dist" includes="*"/>
    </replaceregexp>
</target>

1 个答案:

答案 0 :(得分:16)

只需将 s 标志添加到您的标志中:

<replaceregexp match="\&lt;!--source scripts--\&gt;(.*?)\&lt;!--end source scripts--\&gt;" replace="\&lt;script src='min.js'\&gt;\&lt;/script\&gt;" flags="gs">
        <fileset dir="${basedir}/../dist" includes="*"/>
</replaceregexp>