regex - ant 替换正则表达式 xml 换行符

标签 regex ant 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;\r\n\s+&lt;active&gt;true" flags="gim" byline="false">
        <substitution expression="/fullname&gt;\r\n        &lt;active&gt;false"/>
        <fileset dir="src\objects" includes="Claim_Approvals__c.object"/>
    </replaceregexp>
</target>

最佳答案

明白了 - 以下给出了正确的结果:

<target name="deactivate_val_rules">
    <echo message="deactivating workflows..." />
    <replaceregexp match="/fullname&gt;\r\n\s+&lt;active&gt;true" flags="gis" byline="false">
        <substitution expression="/fullname&gt;${line.separator}        &lt;active&gt;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/

相关文章:

C++ 文件读取和拆分列

asp.net - 正则表达式匹配特定字符串

正则表达式替换以更改句子中的单词顺序

java - 在 ANT 构建期间未发送修改后的文件

javascript - 流分析 - 在 JavaScript 函数中添加换行符

linux - 如何使用 linux mail 命令在电子邮件中插入新行?

python - 如何从pandas数据框中的列值中删除连续的四位数字

从字符向量中删除可能包含特殊字符而不匹配单词部分的整个单词列表

java - 从自定义测试脚本/代码创建标准测试报告文件

java - ant 构建文件中的 Guava