Steamer Lane Studio技術備忘録Movable Type

MovableTypeのregex_replace複数使用

movable-type MovableTypeのregex_replace複数使用
作成日: 2025年6月19日

feedなどへの出力で、entrybodyを調整したい場合など。

regex_replaceを複数書いても最初しか反映されない。

<$mt:Entrybody mteval="1" regex_replace='/class="prettyphoto"/g',"" setvar="cont"><mtvar name="cont" regex_replace='/data-rel="prettyPhoto\[\]"/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<div class="clear">.*?</div>/g',"" setvar="cont"><mtvar name="cont" regex_replace='/&nbsp;/g',"" setvar="cont"><mtvar name="cont" regex_replace='/&amp;/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<span(.*)inline;">/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<span>/g',"" setvar="cont"><mtvar name="cont" regex_replace='/</span>/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<a(.*)">/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<a(.*)" >/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<\/a>/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<img(.*)" />/g',"" setvar="cont"><mtvar name="cont" regex_replace='/<p><br />/g',"<p>" setvar="cont"><mtvar name="cont" regex_replace='/<p><br>/g',"<p>" setvar="cont"><mtvar name="cont" regex_replace='/<p></p>/g',"" setvar="cont">

regex_replaceは1タグ1回なのでこうするしかない。
feedへの実装したものだが、MT3~MT8までの投稿/また仕様が様々で、feedを読み込む先で改行はいれたかったのでこんなコードになった。
<p><br>を<p>置換、投稿時のミスって感じだからDBで<p><br>は<p>置換のがベターだと思うが、同一変数をmtvar繰り返しでやるイメージ。