strings.ReplaceRE
文法
strings.ReplaceRE PATTERN REPLACEMENT INPUT [LIMIT]
戻り値
string
エイリアス
replaceRE
正規表現を指定する際には、“解釈される” (interpreted) 文字列リテラル (ダブルクォートで囲む) ではなく、そのままの文字列リテラル (バッククォートで囲む) を用いることで、文法を簡易なものにしてください。 “解釈される” 文字列リテラルを用いる場合、バックスラッシュそのものはエスケープする必要があります。
Go 言語の正規表現パッケージでは RE2 文法 を実装しています。
RE2 文法とは、おおざっぱに言えば PCRE が許容する文法のサブセットであり、さまざまな 注意事項 があります。
なお RE2 のエスケープシーケンス \C
はサポートされません。
{{ $s := "a-b--c---d" }}
{{ replaceRE `(-{2,})` "-" $s }} → a-b-c-d
置き換え回数を制限するには LIMIT
引数を使います。
{{ $s := "a-b--c---d" }}
{{ replaceRE `(-{2,})` "-" $s 1 }} → a-b-c---d
正規表現内においてグルーピングによって取得した内容は、置換文字列内にて $1
, $2
などを使って挿入することができます。
{{ $s := "http://gohugo.io/docs" }}
{{ replaceRE "^https?://([^/]+).*" "$1" $s }} → gohugo.io