[PHP-users 16786]Re: 置換時の関数の利用方法

Shin MATAMURA matamura @ m-flats.co.jp
2003年 7月 17日 (木) 18:09:53 JST


マタ@MFと申します。

>正規表現に一致した文字列を引数として受け取り処理した
>文字列に置換する。という作業を行いたく以下のようにし
>てみたのですが、この渡し方では"\\1"という文字列が渡る
>だけのようです。
>
>eregi_replace("&#(.....);", test_func(\\1), $string);

preg_replaceで良ければ、

<?php
function test_func($targ){
  return strtoupper($targ);
}
$test = 'matamura';
echo preg_replace('/(mu)/e','test_func(\'\\1\')',$test);
?>

こんな感じで関数に渡せます。
「preg_replace('/(mu)/e',test_func('\\1'),$test);」
では無いので、注意して下さいね。
preg_replaceについては、
http://www.php.net/manual/ja/function.preg-replace.php
Perl互換正規表現については、Perlの書籍をあたって下さい。

それでは、失礼します。


PHP-users メーリングリストの案内