ant replaceregex 替换多行 [英] ant replaceregex replace multiline

查看:23
本文介绍了ant replaceregex 替换多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要替换文件中的多行字符串,如下所示:

I need replace multiline string in file, like this:

startString
bla bla bla
...
endString

由蚂蚁替换正则表达式.蚂蚁代码:

by ant replaceregex. Ant code:

    <copy file="${file}" tofile="${newFile}" overwrite="true">
        <filterchain>
            <replaceregex pattern="startString(.+)endString" replace="zzz" flags="gmi" byline="true"/>
        </filterchain>      
    </copy>

如果替换文本是单行 - 一切正常,但是当文本是多行时 - 替换正则表达式不起作用.我应该在代码中修复什么?

If text for replace is Single line - all works correct, but when text is multiline - replaceregex doesn't work. What I should fix in my code?

推荐答案

您需要进行一些更改.您有几个设置建议将每一行输入视为单独的输入行,即 byline 属性和 m 标志.在下面,我删除了那些并添加了 s 标志,它将输入文件视为一行输入:

There are a couple of changes you need to do. There are a couple of settings you had suggesting that each line of input should be considered a separate line of input which are the byline attribute and the m flag. In the following I have removed those and also added the s flag which treats the input file a single line of input:

<replaceregex pattern="startString(.+?)endString" replace="zzz"
    flags="gis" byline="false"/>

还要注意在正则表达式中添加了 ?,这使得通配符非贪婪,以防您要匹配多次出现.

Also note the addition of the ? in the regex, this makes the wildcard non greedy in case you have multiple occurrences you want to match.

有关更多信息的 ant ReplaceRegExp 文档.

The ant ReplaceRegExp documentation for more.

这篇关于ant replaceregex 替换多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆