質問: 指定した複数の文字列の色を変えたいです。 例えば、「a、またはbなどのc。」という文章を書いたとき a、b、cという文字色を同じ色に変更したいです。 文字列を文字列に置換する方法は下記のようにわかったのですが・・・ 色を変えるにはどうしたらいいのでしょうか? ``` ```
回答: 以下でそれっぽいことは実現できます。 ``` $0', $str); echo $str_grept; ``` 出力結果 ``` a、またはbなどのc。 ``` $0とすることでマッチした文字が入ってきます。 (0だけじゃダメなケースもあるのでそこは置換対象や要件次第でかえる必要があります) 注意点 ==== あくまで「それっぽい」としたのはタグと属性を大文字にしているところにあります。 第1引数を配列で突っ込んだとしても結局は1つ目から1つずつ置換しているに過ぎないので、htmlタグと属性を小文字にするとclassのcが置換対象となってしまいます。 今回の手法以外で文字色を変えようとしても結局はどこかで引っかかる可能性があり、今回のような単純な置換のためだけのことになるので、あまり汎用性が高いやり方ではないかもしれません。 もしかしたらもっと汎用性が高い回答が来るかもしれないので 私の回答は1つの参考としてもう少し待ってみてもいいかもしれません。 * PHPマニュアル:preg_replace() * PHP 正規表現 メモ