• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:strtrの場合の大文字小文字区別なしの解消)

strtrを使って大文字小文字区別なしで置換する方法はあるか

このQ&Aのポイント
  • strtrを使って大文字小文字区別なしで置換する方法はありますか?例えば、文字列の中の特定の単語を強調表示したい場合、strtrを使うと大文字小文字の区別があるため、正確に置換できません。
  • 一つの解決策は、str_ireplace関数を使って大文字小文字を無視して置換する方法です。ただし、str_ireplaceは完全一致のみを置換するため、一部の単語だけを置換する場合には適しません。
  • もう一つの解決策は、正規表現を使って大文字小文字を無視して置換する方法です。正規表現パターンで単語を指定し、preg_replace関数を使って置換します。この方法であれば、任意の単語を置換できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

echo mb_eregi_replace( 'apple|a', '<strong class="hoge">\\0</strong>', 'これはappleでaです。' );

kayakiss
質問者

お礼

ありがとうございます!! 完璧です!! こちらはベストアンサーで確実なのですが、 \\0の意味を教えていただけませんでしょうか? 恐れ入りますがよろしくお願いいたします。

その他の回答 (1)

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

\\0 には正規表現でマッチした部分文字列が入ります。 例では apple にマッチした場合は \\0 に apple が a がマッチした場合は a がといった具合です。 以下を実行してもらえれば部分文字列置換の意味合いが多少なりわかるかと思います。 mb_eregi_replace( 'a(p(pl)e)', '0:\\0 1:\\1 2:\\2', 'Apple' );

kayakiss
質問者

お礼

本当に詳しくありがとうございました! さらなる精進を心掛けたいと思います。

関連するQ&A