Hatena::ブログ(Diary)

”improve it!” このページをアンテナに追加 RSSフィード

2007年5月28日 月曜日

Smartyの修飾子regex_replaceでマッチした値を参照する

| 22:16 | Smartyの修飾子regex_replaceでマッチした値を参照するを含むブックマーク Smartyの修飾子regex_replaceでマッチした値を参照するのブックマークコメント

preg_replace("/^(\d{2,})(\d{4})(\d{4})/", "$1-$2-$3", $number);

のようなことをSmartyのテンプレートで修飾子regex_replaceを使ってやりたかったのだけど、

以下のようにやってもうまくいかない。

{$number|regex_replace : "/^(\d{2,})(\d{4})(\d{4})/" : "$1-$2-$3"}

まずコロンの前後にスペースを入れてはいけないらしい。

あと、{}も駄目っぽい。

マッチした文字列を参照できないのかと思ったけどそうでもないらしく(404 Not Found)、ダブル・クオートではなくシングル・クオートでくくればいいらしい。

それでできたのがこれ。

{$number|regex_replace:'/^(\d\d+)(\d\d\d\d)(\d\d\d\d)/':'$1-$2-$3'}
トラックバック - http://d.hatena.ne.jp/uunfo/20070528/1180358171
リンク元
Connection: close