regex_replace モディファイヤを連続して適用できる MovableType プラグイン:regex_replaces

Posted by
ぴろり
Posted at
2012/05/25 16:25
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
プラグイン カテゴリ
カバーイメージ

 MovableType の regex_replace モディファイヤでは、Perl の正規表現を用いた強力な文字列操作が行えますが、モデファイヤの記述一回につき適用できる処理は一つだけです。処理を複数回行いたい場合には、その分だけモディファイヤを繰り返し記述しなければなりません。引数に配列を渡せるのですから、一度の記述で連続して処理できるようなプラグインを書いてみました。

このエントリーをはてなブックマークに追加  

機能

  • 配列引数 V を受け取り、V[0]V[1] について regex_replace と同じ動作をします
  • 続いて V[2] および V[3] が定義されていた場合、V[3]V[4] について regex_replace と同じ動作をします
  • 以下同様に V[2n] および V[2n+1](n は整数)が定義されていた場合、V[2n]V[2n+1] について regex_replace と同じ動作をします
  • V[2n] または V[2n+1] が未定義の場合、そこで処理を終了します

使い方

 複数の regex_replace モディファイアを連続して適用したい場合、従来では以下のように記述することになります。

<mt:unless regex_replace="/quick/g","QUICK" regex_replace="/fox/","FOX" regex_replace="/lazy/g","LAZY">
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
</mt:unless>

 プラグインで追加された regex_replaces モディファイアを使用して以下のように記述できます。

<mt:unless regex_replaces="/quick/g","QUICK","/fox/","FOX","/lazy/g","LAZY">
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
</mt:unless>

 regex_replaces モディファイアは配列変数を受け取ることができます。

// 配列変数に放り込んでから渡すと見易いです
<mt:SetVar name="regexs[0]" value="/quick/g">
<mt:SetVar name="regexs[1]" value="QUICK">
<mt:SetVar name="regexs[2]" value="/fox/">
<mt:SetVar name="regexs[3]" value="FOX">
<mt:SetVar name="regexs[4]" value="/lazy/">
<mt:unless regex_replaces="$regexs">
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
</mt:unless>
// "/lazy/" のペアが未定義の場合でも、エラーにはなりません。無視されるだけです。
The QUICK brown FOX jumps over the lazy dog.
The QUICK brown fox jumps over the lazy dog.
The QUICK brown fox jumps over the lazy dog.

ダウンロード

インストール

 plugins フォルダに配置してください。

プラグイン設定

 プラグインに関する設定はありません。

ライセンス等、いろいろ

  • ライセンスは LGPL とします
  • MTOS5.12、MTOS4.361 で動作確認しています
  • 商用目的または法人利用については 1 つの MovableType につき 1 ライセンスの購入をお願いしております。
    ライセンス料金: ¥1,000 JPY (税込み) 
    一言どうぞ:
  • 商用目的でない個人利用(アフィリエイトを含む)については無償でご利用頂けますが、よろしければ継続開発のためのライセンス購入(任意)をお願いしております。
    お気持ち:  
    一言どうぞ:
このエントリーをはてなブックマークに追加  


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:パターンにマッチした文字列を処理する MovableType プラグイン:RegexFor

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。