6

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

startString
bla bla bla
...
endString

通过蚂蚁替换正则表达式。蚂蚁代码:

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

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

4

1 回答 1

20

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

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

还要注意?在正则表达式中添加的,这使得通配符不是贪婪的,以防你想匹配多个匹配项。

ant ReplaceRegExp文档了解更多信息。

于 2012-04-21T07:31:03.210 回答