- ベストアンサー
画像置換えの方法を教えてください
- プログラム初心者の方に、正規表現を使用して画像の置換えを行う方法をお教えします。
- 拡張子がgif、png、jpgの画像の番号を正規表現で検索し、テキストを置き換えます。
- 具体的な例を示しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
1つの文字列中にまとめて存在しているならば $pattern = '/\b\d++\.(?:png|gif|jpe?+g)\b/i'; それぞれが別の文字列として独立しているならば $pattern = '/\A\d++\.(?:png|gif|jpe?+g)\z/i'; として、 $mes = preg_replace($pattern, '<a href="$0">$0</a>', $mes); で動作します。preg_matchを行う必要はありません。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
微妙にずれている気がしますが、こんな感じで? <?PHP $mes=<<<EOF xxx56.gifxxx100.gifxxxx 6.png yyy123.bmpyyy6549.pngyyy 79169.jpg zzz35.jpgzzz EOF; print nl2br(htmlspecialchars($mes)); print "<hr>"; $pattern = "/\d+.(?:png|gif|jpg)/mis"; $replacement="<a href=\"$0\">$0</a>"; $mes=preg_replace($pattern,$replacement,$mes); print nl2br(htmlspecialchars($mes));
お礼
回答ありがとうございます こちらも、ばっちり動きました!感謝いたします
- yambejp
- ベストアンサー率51% (3827/7415)
英字+数字+拡張子の場合どこまでヒットさせるかなど もう少し仕様を詰めた方がいいですね たとえば「xxx1.jpg」は「1.jpg」をヒットさせるのか、 それともヒットさせないのか
お礼
回答ありがとうございます 1.jpgはヒットさせる予定です 数字+拡張子なので 1.jpg、11.jpg、111.jpgなど桁数も変わってしまいます。番号も変わります 拡張子は3つのみです
お礼
回答ありがとうございます ばっちり動きました!さすがです