HUGO
News Docs Themes Community GitHub

strings.ReplaceRE

Returns a copy of INPUT, replacing all occurrences of a regular expression with a replacement pattern.

Syntax

strings.ReplaceRE PATTERN REPLACEMENT INPUT [LIMIT]

Returns

string

Alias

replaceRE

When specifying the regular expression, use a raw string literal (backticks) instead of an interpreted string literal (double quotes) to simplify the syntax. With an interpreted string literal you must escape backslashes.

Go’s regular expression package implements the RE2 syntax. The RE2 syntax is a subset of that accepted by PCRE, roughly speaking, and with various caveats. Note that the RE2 \C escape sequence is not supported.

{{ $s := "a-b--c---d" }}
{{ replaceRE `(-{2,})` "-" $s }} → a-b-c-d

Limit the number of replacements using the LIMIT argument:

{{ $s := "a-b--c---d" }}
{{ replaceRE `(-{2,})` "-" $s 1 }} → a-b-c---d

Use $1, $2, etc. within the replacement string to insert the content of each capturing group within the regular expression:

{{ $s := "http://gohugo.io/docs" }}
{{ replaceRE "^https?://([^/]+).*" "$1" $s }} → gohugo.io

You can write and test your regular expression using regex101.com. Be sure to select the Go flavor before you begin.