Skip to main content

正規表現のすべての出現箇所を置換パターンに置き換えます。

デフォルトでは、 replaceRE 関数はすべてのマッチを置換します。オプションの LIMIT パラメータを指定することで、マッチの数を制限することができます。

正規表現を指定するときは、構文を簡単にするために、解釈された文字列リテラル (二重引用符) ではなく、生の 文字列リテラル  (バッククォート) を使用します。解釈された文字列リテラルを使用する場合は、バックスラッシュをエスケープする必要があります。

この関数は RE2  正規表現ライブラリを使用します。 詳細については、RE2 構文ドキュメント  を参照してください。 RE2 の \C エスケープ シーケンスがサポートされていないことに注意してください。

で認められている構文のサブセットであり、さまざまな <a href=“https://swtch.com/~rsc/regexp/regexp3.html#caveats"target="_blank"  rel=“noopener”>注意事項 

があります。

以下の例では、2 つ以上連続するハイフンを 1 つのハイフンに置き換えています。

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

置換の数を 1 つに制限するには、以下のように書きます。

{{ $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

regex101.com  を使えば、正規表現を書いてテストすることができます。始める前に、必ず Go フレーバーを選択してください。