我正在尝试使用 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>\r\n\s+<active>true" flags="gim" byline="false">
<substitution expression="/fullname>\r\n <active>false"/>
<fileset dir="src\objects" includes="Claim_Approvals__c.object"/>
</replaceregexp>
</target>
最佳答案
明白了 - 以下给出了正确的结果:
<target name="deactivate_val_rules">
<echo message="deactivating workflows..." />
<replaceregexp match="/fullname>\r\n\s+<active>true" flags="gis" byline="false">
<substitution expression="/fullname>${line.separator} <active>false"/>
<fileset dir="src\objects" includes="Claim_Approvals__c.object"/>
</replaceregexp>
</target>
通过 diff 查看的输出是:
- <fullName>the_name</fullName>
- <active>true</active>
+ <fullName>the_name</fullname>
+ <active>false</active>
关于regex - ant 替换正则表达式 xml 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145777/