regexp functions
These functions allow user you to search and modify text with regular expressions.
The syntax of the regular expressions accepted is Go’s regexp
syntax,
and is the same general syntax used by Perl, Python, and other languages.
regexp.Find
Returns a string holding the text of the leftmost match in input
of the regular expression expression
.
This function provides the same behaviour as Go’s
regexp.FindString
function.
Added in gomplate v3.1.0
Usage
regexp.Find expression input
input | regexp.Find expression
Arguments
name | description |
---|---|
expression |
(required) The regular expression |
input |
(required) The input to search |
Examples
$ gomplate -i '{{ regexp.Find "[a-z]{3}" "foobar"}}'
foo
$ gomplate -i 'no {{ "will not match" | regexp.Find "[0-9]" }}numbers'
no numbers
regexp.FindAll
Returns a list of all successive matches of the regular expression.
This can be called with 2 or 3 arguments. When called with 2 arguments, the
n
argument (number of matches) will be set to -1
, causing all matches
to be returned.
This function provides the same behaviour as Go’s
regexp.FindAllString
function.
Added in gomplate v3.1.0
Usage
regexp.FindAll expression [n] input
input | regexp.FindAll expression [n]
Arguments
name | description |
---|---|
expression |
(required) The regular expression |
n |
(optional) The number of matches to return |
input |
(required) The input to search |
Examples
$ gomplate -i '{{ regexp.FindAll "[a-z]{3}" "foobar" | toJSON}}'
["foo", "bar"]
$ gomplate -i '{{ "foo bar baz qux" | regexp.FindAll "[a-z]{3}" 3 | toJSON}}'
["foo", "bar", "baz"]
regexp.Match
Returns true
if a given regular expression matches a given input.
This returns a boolean which can be used in an if
condition, for example.
Added in gomplate v1.9.0
Usage
regexp.Match expression input
input | regexp.Match expression
Arguments
name | description |
---|---|
expression |
(required) The regular expression |
input |
(required) The input to test |
Examples
$ gomplate -i '{{ if (.Env.USER | regexp.Match `^h`) }}username ({{.Env.USER}}) starts with h!{{end}}'
username (hairyhenderson) starts with h!
regexp.QuoteMeta
Escapes all regular expression metacharacters in the input. The returned string is a regular expression matching the literal text.
This function provides the same behaviour as Go’s
regexp.QuoteMeta
function.
Added in gomplate v3.7.0
Usage
regexp.QuoteMeta input
input | regexp.QuoteMeta
Arguments
name | description |
---|---|
input |
(required) The input to escape |
Examples
$ gomplate -i '{{ `{hello}` | regexp.QuoteMeta }}'
\{hello\}
regexp.Replace
Replaces matches of a regular expression with the replacement string.
The replacement is substituted after expanding variables beginning with $
.
This function provides the same behaviour as Go’s
regexp.ReplaceAllString
function.
Added in gomplate v1.9.0
Usage
regexp.Replace expression replacement input
input | regexp.Replace expression replacement
Arguments
name | description |
---|---|
expression |
(required) The regular expression string |
replacement |
(required) The replacement string |
input |
(required) The input string to operate on |
Examples
$ gomplate -i '{{ regexp.Replace "(foo)bar" "$1" "foobar"}}'
foo
$ gomplate -i '{{ regexp.Replace "(?P<first>[a-zA-Z]+) (?P<last>[a-zA-Z]+)" "${last}, ${first}" "Alan Turing"}}'
Turing, Alan
regexp.ReplaceLiteral
Replaces matches of a regular expression with the replacement string.
The replacement is substituted directly, without expanding variables
beginning with $
.
This function provides the same behaviour as Go’s
regexp.ReplaceAllLiteralString
function.
Added in gomplate v3.1.0
Usage
regexp.ReplaceLiteral expression replacement input
input | regexp.ReplaceLiteral expression replacement
Arguments
name | description |
---|---|
expression |
(required) The regular expression string |
replacement |
(required) The replacement string |
input |
(required) The input string to operate on |
Examples
$ gomplate -i '{{ regexp.ReplaceLiteral "(foo)bar" "$1" "foobar"}}'
$1
$ gomplate -i '{{ `foo.bar,baz` | regexp.ReplaceLiteral `\W` `$` }}'
foo$bar$baz
regexp.Split
Splits input
into sub-strings, separated by the expression.
This can be called with 2 or 3 arguments. When called with 2 arguments, the
n
argument (number of matches) will be set to -1
, causing all sub-strings
to be returned.
This is equivalent to strings.SplitN
,
except that regular expressions are supported.
This function provides the same behaviour as Go’s
regexp.Split
function.
Added in gomplate v3.1.0
Usage
regexp.Split expression [n] input
input | regexp.Split expression [n]
Arguments
name | description |
---|---|
expression |
(required) The regular expression |
n |
(optional) The number of matches to return |
input |
(required) The input to search |
Examples
$ gomplate -i '{{ regexp.Split `[\s,.]` "foo bar,baz.qux" | toJSON}}'
["foo","bar","baz","qux"]
$ gomplate -i '{{ "foo bar.baz,qux" | regexp.Split `[\s,.]` 3 | toJSON}}'
["foo","bar","baz"]