質問: ヒットする初回のみ置換する方法 あいうえおかきくけこあいうえおあいうえお という文字列があった時、 初回の「あいうえお」のみ空に置換して かきくけこあいうえおあいうえお としたいのですが、str_replace()だと全部置換されてしまいますし、 preg_replace()やmb_ereg_replace()ではうまく置換されません。 対象とする文字列は、実際はhtmlタグやマルチバイトが混じっています。 置換するべき文字列は、全く同様のものが対象文字列内にも必ず含まれています。 preg_replace()やmb_ereg_replace()でも可能なのかもしれませんが、 どうやればいいのか分かりませんでした。 どなたかご教示下さい。
回答: > str_replace()だと全部置換されてしまいますし、 > preg_replace()やmb_ereg_replace()ではうまく置換されません。 preg_replace/mb_ereg_replace でも全置換になりそうな気がするのですが どのように「うまく置換されなかった」のでしょうか? それはさておき、 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] ) のように、省略可能な引数の中に limit subject 文字列において、各パターンによる 置換を行う最大回数。デフォルトは -1 (制限無し)。 というのがありますので、ここに1を設定して実行すればよいのではないでしょうか?