あいうえおかきくけこあいうえおあいうえお
という文字列があった時、
初回の「あいうえお」のみ空に置換して
かきくけこあいうえおあいうえお
としたいのですが、str_replace()だと全部置換されてしまいますし、
preg_replace()やmb_ereg_replace()ではうまく置換されません。
対象とする文字列は、実際はHTMLタグやマルチバイトが混じっています。
置換するべき文字列は、全く同様のものが対象文字列内にも必ず含まれています。
preg_replace()やmb_ereg_replace()でも可能なのかもしれませんが、
どうやればいいのか分かりませんでした。
どなたかご教示下さい。
No.1ベストアンサー
- 回答日時:
> 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を設定して実行すればよいのではないでしょうか?
この回答への補足
なんか色々試していたら、以下で出来ました。
$str = '<a href="aaa.html">あいうえお</a>かきくけこ<a href="aaa.html">あいうえお</a>';
$var = '<a href="aaa.html">あいうえお<\/a>'; //先に色々処理した結果
$str = preg_match("/".$var."/", "", $str, 1);
最初に試してみた時にはエラーも出ず置換もされず、だったのですが、
その時の状態が既にもうない為再現する事が出来ませんでした。
上記で可能である事が分かりましたが、色々処理した結果に特殊文字を
エスケープしてあげないといけないので、素直に文字数を取得して
mb_substr()させるようにしようかと思います。
スピード的にどっちが早いのか分かりませんが。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
○分から○時間○分に変換
-
文字列の置換をCStringで(C++)
-
文字列の括弧について(初心者)
-
【PHP 正規表現を使って文字列...
-
VBSで"をエスケープする文字は?
-
空白文字のカンマへの変換について
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
Excel関数「COUNTIF」で”文字”...
-
エスケープ文字の復帰(¥r)と...
-
C++でのCRLFについて
-
UTF8メールがLotus Notesで文字...
-
全角括弧と全角読点の間隔を狭...
-
グレープシティのSPREAD...
-
【Tex】\\verbatiminputについて
-
文字化け変換方法
-
最終行の改行について
-
数値をASCII文字にする方法につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSで"をエスケープする文字は?
-
ダブルコーテーション(
-
文字列の置換をCStringで(C++)
-
文字列の括弧について(初心者)
-
nl2brが効かないのですが・・・
-
○分から○時間○分に変換
-
ダブルクォーテーションが置換...
-
PHPの¥
-
php 正規表現で、\\マークを取...
-
c# string型の変数に、ダブルク...
-
不規則なaタグのスクレイピング...
-
【PHP】preg_replace() で正...
-
Smartyで携帯絵文字を表示する方法
-
htmlspecialchars関数でエスケ...
-
独自タグに囲まれた文字列の変換
-
dirnameでパスが正しく取れない...
-
sedでの最短一致の書き方
-
2バイトローマ数字小文字につ...
-
入力文字に\\マークが入ってい...
-
正規表現でお尻から検索
おすすめ情報