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)

関連するタグ

PowerCMS X 3.542