Задача Ant replaceregexp — сопоставить и заменить блок комментариев HTML

#regex #apache #ant

#регулярное выражение #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="amp;<!--source scripts--amp;>(.*?)amp;<!--end source scripts--amp;>" replace="amp;<script src='min.js'amp;>amp;</scriptamp;>" flags="g">
        <fileset dir="${basedir}/../dist" includes="*"/>
    </replaceregexp>
</target>
  

Ответ №1:

Просто добавьте флаг s к своим флагам :

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