PowerCMS Xでregex_replaceでキャプチャグループを使う
度々ハマるのでメモ。
例えば、ビューの処理で、次のように文字列を変換する場合を考える。
20231206
↓
2023-12-06
実現の為、次のコードを組んでみたが上手く行かず。
<mt:setvar name="henkanmae" value="20231206" />
<mt:var name="henkanmae" regex_replace="'/^\d{4}\d{2}\d{2}/','$1-$2-$3'" />
regex_replaceの仕様は確かphpのpreg_replaceに準ずるはずだったので、それを見てみたがよく分からず。
https://www.php.net/manual/ja/function.preg-replace.php
結果、過去案件のコードより次のようにすればよいと判明。
<mt:setvar name="henkanmae" value="20231206" />
<mt:var name="henkanmae" regex_replace="'/^\d{4}\d{2}\d{2}/','\$1-\$2-\$3'" />
要は、置き換え後文字列を「$1」→「\$1」という風にしてあげる。
こりゃ分からんわ(x_x)