replace ';' LIST ';' REGEX (';' STRING (';' STRING)? )?
Macro
Summary
The replace macro applies regex-based replacement to each element in a comma-separated list. Uses simple comma splitting (doesn’t handle quoted sections).
Syntax
${replace;<list>;<regex>[;<replacement>[;<delimiter>]]}
Parameters
list- Comma-separated list of elementsregex- Regular expression pattern to matchreplacement(optional) - Replacement string with$1-$9back-references (default: empty)delimiter(optional) - Output delimiter (default: “,”)
Behavior
- Splits list on commas (simple:
\s*,\s*) - Applies
element.replaceAll(regex, replacement)to each - Supports regex back-references (
$1,$2, etc.) - Cannot handle commas within quoted sections
- Returns delimited result
Examples
Add file extension:
impls: foo,bar
${replace;${impls};$;.jar}
# Returns: "foo.jar,bar.jar"
Replace pattern:
${replace;v1.0,v2.0,v3.0;^v;version-}
# Returns: "version-1.0,version-2.0,version-3.0"
Using back-references:
${replace;com.example.api,com.example.impl;com\.example\.(.+);$1}
# Returns: "api,impl"
Custom delimiter:
${replace;a,b,c;$;-suffix;;}
# Returns: "a-suffix;b-suffix;c-suffix"
Use Cases
- Adding prefixes/suffixes to list elements
- Pattern-based transformations
- File extension handling
- List element modification
- Bulk string operations
Notes
- Simple comma splitting only
- For quoted sections, use
${replacelist} - Regex uses Java syntax
- Empty replacement removes matched text
- See also:
${replacelist}for quoted section support - See also:
${replacestring}for single string replacement
See test cases in MacroTestsForDocsExamples.java
