アプリ版:「スタンプのみでお礼する」機能のリリースについて

正規表現での文字列全体に対する、マッチ箇所
への置き換えについて、アドバイスをもらえないでしょうか。

parlでいうg修飾子はphpには無く、
例えば、[preg_match]は[preg_match_all]という関数で対応出来ますが、
置き換えを行う[preg_replace]には[preg_replace_all]がありません。
それに類する関数も無いように思います。

これに関して、PHPではどのように対応すれば良いのでしょうか。

A 回答 (2件)

>[preg_replace_all]がありません。



preg_replace()で第4引数がなければ全部置き換えですから・・・

<?
$str=<<<eof
hoge1
hoge2
hoge3
hoge4
hoge5
eof;
print preg_replace("/hoge/s","fuga",$str);
?>

ちなみに第4引数があるとこんな感じ
<?
$str=<<<eof
hoge1
hoge2
hoge3
hoge4
hoge5
eof;
print preg_replace("/hoge/s","fuga",$str,3);
?>

PHPのバージョンによって引数が若干ちがいます
    • good
    • 0
この回答へのお礼

理解不足でした。むしろparlよりも使い勝手がいいですね。
サンプルまで頂きまして、ありがとう御座います。
ちょっとスキルアップ出来ました。

お礼日時:2008/09/17 23:34

省略可能な、置換の最大回数を指定するパラメータがあります。


省略時には無制限。つまり見つかった部分文字列すべてに対して置換を行います。

PHP: preg_replace - Manual
http://jp2.php.net/preg_replace
    • good
    • 0
この回答へのお礼

マニュアルを拝見して、確かにその通りなのが分かりました。
コードが上手く動作せず、全読みの不全が原因かと目星を
付けたんですが、違ったようです。
ですが、おかげで原因を絞り込めました。
ありがとうございます。

お礼日時:2008/09/17 23:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!