あいうえおかきくけこあいうえおあいうえお
という文字列があった時、
初回の「あいうえお」のみ空に置換して
かきくけこあいうえおあいうえお
としたいのですが、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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Ruby power BI クエリエディター 〇〇を含む文字列置換 1 2022/10/16 17:34
- Access(アクセス) Accessで、『"A"以外の場合"--"に置き換える』という作業をしたいのですが、良い方法はありま 1 2022/06/07 19:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
文字列のアスタリスク置換
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
文字列から、特定の文字を削除...
-
【PHP】preg_replace() で正...
-
bashで文字列に含まれる//(ス...
-
phpで正規表現を用いて、一定の...
-
文字列の括弧について(初心者)
-
○分から○時間○分に変換
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
半角記号、全角記号を含む正規...
-
文の改行
-
正規表現で「0」のみ抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
○分から○時間○分に変換
-
近似した文字列を置換するエク...
-
文字列の括弧について(初心者)
-
PHPの¥
-
ダブルクォーテーションが置換...
-
php 正規表現で、\\マークを取...
-
(から)までの文字列を削除したい
-
nl2brが効かないのですが・・・
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
PHPでCSVを出力する際のセルに...
-
c# string型の変数に、ダブルク...
-
正規表現で<BR>の行を除外した...
-
ダブル、シングルクォーテーシ...
-
Pukiwikiの編集にて#や-を無効...
-
空白文字のカンマへの変換について
おすすめ情報