[PHP-users 22018]Re: mb_ereg_replaceでパターンの特定回数マッチ
Seto
seto @ 1kg.jp
2004年 6月 6日 (日) 06:38:39 JST
Setoです。
おはようございます。
>いしげ です.
> $string の先頭に "%1" があった場合に
>正常に置換されないように思えます.
>それと,"%1%1" というパターンの際に,
>ひとつ目の %1 を置換した時点でポインタが先に行ってしまうので,
>ふたつ目の [^%] にマッチしないため %1 自体が置換されません.
なるほど。。。
>
>$string に確実に含まれない文字やパターンが存在する前提であれば,
>例えば $string に \xff が含まれないとすると
><?php
>echo str_replace("\xff", '%', str_replace('%1', $replace, str_replace('%%',
> "\xff", $string)));
>?>
>とすればよいのですが……
私もこれが楽だと思います。
>
>完全な汎用性を求めると,
><?php
>echo str_replace("%$replace", '%1', str_replace('%1', $replace, $string));
>?>
こちらは元データに "%" . $replace に相当するものが入っていると
期待する結果と違ってしまうと思います。
それなら、と考えると。。。。
%%1 で explode して 各配列データの %1 を $replace に置き換えかな。。。
# むちゃくちゃ力技ですね。。。
Junya Seto
PHP-users メーリングリストの案内