ant replaceregexp xml newline



我正试图使用ANT replaceregexp任务将xml元素值从"true"更改为"false",但我在新行中遇到匹配困难。XML节点的相关部分:

<validationRules>
    <fullName>CAReversaApprovallLockdown</fullName>
    <active>true</active>

在我的文本编辑器(sublime)中,我能够使用以下正则表达式来查找/替换,但我不知道如何在ANT replaceregexp中复制这一点:

/fullname>n        <active>true

我不能找出正确的语法来匹配换行符和后面的空格的组合。换行符后面的空格总是相同的,如果这样更方便的话。

看着https://ant.apache.org/manual/Tasks/replaceregexp.html我已经尝试了^和$的各种组合与m标志,s+的空间等,但只是不能击中正确的组合....什么好主意吗?

我目前的进度低于,但不幸的是没有运气…

<target name="deactivate_val_rules">
    <echo message="deactivating validation rules..." />
    <replaceregexp match="/fullname&gt;rns+&lt;active&gt;true" flags="gim" byline="false">
        <substitution expression="/fullname&gt;rn        &lt;active&gt;false"/>
        <fileset dir="srcobjects" includes="Claim_Approvals__c.object"/>
    </replaceregexp>
</target>

明白了——下面给出了正确的结果:

<target name="deactivate_val_rules">
    <echo message="deactivating workflows..." />
    <replaceregexp match="/fullname&gt;rns+&lt;active&gt;true" flags="gis" byline="false">
        <substitution expression="/fullname&gt;${line.separator}        &lt;active&gt;false"/>
        <fileset dir="srcobjects" includes="Claim_Approvals__c.object"/>
    </replaceregexp>
</target>

通过diff查看的输出为:

  -  <fullName>the_name</fullName>
  -  <active>true</active>
  +  <fullName>the_name</fullname>
  +  <active>false</active>

要使用replaceregexp,您需要定义要更改的值作为参考。

例如:

<validationRules>
    <fullName>CAReversaApprovallLockdown</fullName>
    <active>true</active>
Ant:

<target name = "deactivate_val_rules">
    <echo message="deactivating validation rules..." />
    <replaceregexp file="${FILE_LOACTION}/FILE_NAME.FILE_EXT" match="true" replace="false" />   
</target>

相关内容

  • 没有找到相关文章