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