[PHP-users 34322] Re: preg_replaceでキャプチャ用サブパターンを無効に
NISHIMURA Yutaka
forml @ aypio.net
2009年 2月 27日 (金) 23:00:16 JST
西村です。
Reply to <0ACF46EC-6E86-48A1-A831-B2106CB1F43F @ a-plus.to>
Carpenter <mlreader @ a-plus.to> wrote:
> preg_quote だと \ $ だけでなく、. < > などもエン
> コードされるのです
そう言うことでしたら、置換後の文字列で数字の前に\が来るものを
エスケープしてやるとよいでしょう。
$a = array("0円","1円","2円","3円","4円","5円","6円","7円","8円","9円");
$b = array("\0円","\1円","\2円","\3円","\4円","\5円","\6円","\7円","\8円","\9円");
$c = str_replace($a,$b,"D:\ほげほげ0000円.jpg");
preg_replace( '/パス/', $c, 'このパスは' );
てな感じでどうでしょうか?
preg_replace_callbackを使えばもっとスマートに出来そうですが
--
NISHIMURA,Yutaka./西村ゆたか <forml @ aypio.net>
PHP-users メーリングリストの案内