Ant内置任务之replaceregexp

一、概述

        replaceregexp是ant内置任务,是一个基于目录的,用于将选择的一个或一组文件中给定正则表达式替换为替代的模式。当输出文件与存在的文件不同时才会写入。防止任务进行基于未更改文件的伪重建。与regexpmapper类似,需要一个支持的正则表达式库与org.apache.tools.ant.util.regexp.Regexp实现。

二、属性

        file:要替换正则表达式的文件。可以通过嵌套fileset指定。
        match:要在文件中进行匹配的正则表达式。可以通过嵌套regexp指定。
        replace:在文件中替换正则表达式的替换模式。可以通过嵌套substitution指定。
        flags:匹配正则表达式时使用的标记。支持的值有:g(全局替换,替换所有匹配项)、i(匹配时不区分大小写)、m(多行模式,将字符串看作是多行输入,使用“^”和“$”做为任一行的开始和结束,而不是字符串的开始和结束)、s(单行模式、将字符串看作是单行输入,此模式下“.”可以匹配换行符)。
        byline:若为true,处理文件时每次处理一行,并且每次都进行替换。若为false,则每个文件只进行一次替换。当flags包含g时,此属性无效。默认为false。
        encoding:ant1.6起,文件编码。默认为JVM编码。
        preserveLastModified:ant1.8起,文件修改时是否保留文件时间戳。默认为false。

三、简单示例

        测试文件test.txt内容为:
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890

        
        
        
                
                
                
                        
                
        
        因byline设置为true,并且flags不包含g,所以运行结果为:
abcdefGHIjklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefGHIjklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefGHIjklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
        若byline设置为false,并且flags不包含g,所以运行结果为:
abcdefGHIjklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890
abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890

你可能感兴趣的:(Ant入门)