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 inputinput | regexp.Find expressionArguments
| 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] inputinput | 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 inputinput | regexp.Match expressionArguments
| name | description |
|---|---|
expression |
(required) The regular expression |
input |
(required) The input to test |
Examples
$ gomplate -i '{{ $u := env.Env.USER }}{{if ($u | regexp.Match `^h`) }}username ({{ $u }}) 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 inputinput | regexp.QuoteMetaArguments
| 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 inputinput | regexp.Replace expression replacementArguments
| 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 inputinput | regexp.ReplaceLiteral expression replacementArguments
| 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] inputinput | 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"]