見出し画像

PowerCMS X の replace と regex_replace でダブルコーテーションを置換

replace と regex_replace はどちらも作法は一緒で、
replace="" の中に '検索文字','置換文字' を入れます。

replace="'検索文字','置換文字'"
regex_replace="'検索文字','置換文字'"

ただし、検索文字がダブルコーテーションだと、うまく置換ができないです。その場合は検索文字を変数にセットしておけば動作します。
以下はサンプルです。

# サンプルテキストを用意
<MTSetVarBlock name="test">ab"c"de</MTSetVarBlock>

# replace の場合
<MTSetVarBlock name="search_word">"</MTSetVarBlock>
<MTVar name="test" replace="'$search_word','@'">

# regex_replace の場合
<MTSetVarBlock name="rr_search_word">/"/</MTSetVarBlock>
<MTVar name="test" regex_replace="'$rr_search_word','@'">

# 結果
ab@c@de

ダブルコーテーションを置換したいケースは json 出力の時と思いますので、その場合は to_json を付けて対応もできます。

<MTVar name="test" to_json>

# 結果
"ab\u0022c\u0022de"


この記事が気に入ったらサポートをしてみませんか?