问题描述
限时送ChatGPT账号..我需要替换文件中的多行字符串,如下所示:
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屋!
更多推荐
[db:关键词]
发布评论