findRE
正規表現にマッチする文字列のスライスを返します。
デフォルトでは、 findRE
関数はすべてのマッチを検出します。オプションの LIMIT パラメータを指定することで、マッチの数を制限することができます。
正規表現を指定するときは、構文を簡単にするために、解釈された文字列リテラル (二重引用符) ではなく、生の 文字列リテラル (バッククォート) を使用します。解釈された文字列リテラルを使用する場合は、バックスラッシュをエスケープする必要があります。
この関数は RE2
正規表現ライブラリを使用します。
詳細については、RE2 構文ドキュメント
を参照してください。
RE2 の \C
エスケープ シーケンスがサポートされていないことに注意してください。
で認められている構文のサブセットであり、さまざまな <a href=“https://swtch.com/~rsc/regexp/regexp3.html#caveats"target="_blank" rel=“noopener”>注意事項
があります。
以下の例では、レンダリングされた .Content
内のすべての第 2 レベルの見出し (h2
要素) のスライスを返します。
{{ findRE `(?s)<h2.*?>.*?</h2>` .Content }}
s
フラグを指定すると、 .
は \n
にもマッチするようになり、改行を含む h2
要素を見つけることができるようになります。
マッチの数を 1 つに制限する場合は、以下のように書きます。
{{ findRE `(?s)<h2.*?>.*?</h2>` .Content 1 }}
を使えば、正規表現を書いてテストすることができます。始める前に、必ず Go フレーバーを選択してください。