From b9421dc80af485591a9c50cc8921f912e0def11e Mon Sep 17 00:00:00 2001
From: Ashlee Young ReplaceRegExp is a directory based task for replacing the
-occurrence of a given regular expression with a substitution pattern
-in a selected file or set of files. The output file is only written if it differs from the existing
-file. This prevents spurious rebuilds based on unchanged files which
-have been regenerated by this task. Similar to regexp
-type mappers this task needs a supporting regular expression
-library and an implementation of
- replaces occurrences of the property name "OldProperty"
- with "NewProperty" in a properties file, preserving the existing
-value, in the file This task supports a nested FileSet
- element. Since Ant 1.8.0 this task supports any filesystem
- based resource
- collections as nested elements. This task supports a nested Regexp element to specify
- the regular expression. You can use this element to refer to a previously
- defined regular expression datatype instance. This task supports a nested Substitution element to specify
- the substitution pattern. You can use this element to refer to a previously
- defined substitution pattern datatype instance. replaces occurrences of the property name "OldProperty"
- with "NewProperty" in a properties file, preserving the existing
-value, in all files ending in replaces all whitespaces (blanks, tabs, etc) by one blank remaining the
-line separator. So with input
-ReplaceRegExp
-Description
-org.apache.tools.ant.util.regexp.Regexp
.
-See details in the documentation of the Regexp Type. Parameters
-
-
-
-
- Attribute
- Description
- Required
-
-
- file
- file for which the regular expression should be replaced.
- Yes if no nested
- <fileset>
is used
-
- match
- The regular expression pattern to match in the file(s)
- Yes, if no nested
- <regexp>
is used
-
- replace
- The substitution pattern to place in the file(s) in place
- of the regular expression.
- Yes, if no nested
- <substitution>
is used
-
- flags
- The flags to use when matching the regular expression. For more
- information, consult the Perl5 syntax
-
- g : Global replacement. Replace all occurrences found
- i : Case Insensitive. Do not consider case in the match
- m : Multiline. Treat the string as multiple lines of input, using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.
- s : Singleline. Treat the string as a single line of input, using "." to match any character, including a newline, which normally, it would not match.
- No
-
-
- byline
- Process the file(s) one line at a time, executing the replacement
- on one line at a time (true/false). This is useful if you
- want to only replace the first occurrence of a regular expression on
- each line, which is not easy to do when processing the file as a whole.
- Defaults to false.
- No
-
-
- encoding
- The encoding of the file. since Apache Ant 1.6
- No - defaults to default JVM encoding
-
-
-preserveLastModified
- Keep the file timestamp(s) even if the file(s)
- is(are) modified. since Ant 1.8.0.
- No, defaults to false
- Examples
-
-<replaceregexp file="${src}/build.properties"
- match="OldProperty=(.*)"
- replace="NewProperty=\1"
- byline="true"
-/>
-
-${src}/build.properties
Parameters specified as nested elements
-
- <regexp id="id" pattern="alpha(.+)beta"/>
-
- <regexp refid="id"/>
-
- <substitution id="id" expression="beta\1alpha"/>
-
-
-
- <substitution refid="id"/>
-Examples
-
-
-
-
-<replaceregexp byline="true">
- <regexp pattern="OldProperty=(.*)"/>
- <substitution expression="NewProperty=\1"/>
- <fileset dir=".">
- <include name="*.properties"/>
- </fileset>
-</replaceregexp>
-
.properties
in the current directory
-
-
-<replaceregexp match="\s+" replace=" " flags="g" byline="true">
- <fileset dir="${html.dir}" includes="**/*.html"/>
-</replaceregexp>
-
-
-would converted to
-
-<html> <body>
-<<TAB>><h1> T E S T </h1> <<TAB>>
-<<TAB>> </body></html>
-
-
-
-<html> <body>
- <h1> T E S T </h1> </body></html>
-
-
--<replaceregexp match="\\n" replace="${line.separator}" flags="g" byline="true"> - <fileset dir="${dir}"/> -</replaceregexp> -
replaces all \n markers (beware the quoting of the backslash) by a line break. -So with input -
--would converted to --one\ntwo\nthree -
--Beware that inserting line breaks could break file syntax. For example in xml: --one -two -three --
-- - - - - - - -- cgit 1.2.3-korg-<root> - <text>line breaks \n should work in text</text> - <attribute value="but breaks \n attributes" /> -</root> --