• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現の書き方教えてください(PHP))

PHPで正規表現を使って日付の数字部分を<span>で囲む方法

このQ&Aのポイント
  • PHPで正規表現を使って、日付の文字列から年/月/日の数字部分を<span>で囲む方法を教えてください。必要なのは、月と日をゼロ埋めなしの1~2桁で表示し、年は必ず4桁で表示することです。
  • 具体的な例として、2011年5月12日(木)~6月1日(水)のような文字列から、以下のように数字部分を<span>で囲みたいです。例えば、年は<span class="y">2011</span>年、月は<span class="m">5</span>月、日は<span class="d">12</span>日(木)のように表示したいです。
  • 上記の要件を満たすためには、正規表現の置き換えを使う方法があります。ただし、正規表現が苦手であるため、アドバイスを求めています。PHPのバージョンは5.2.5です。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

正確にはUTFでやることになりますが、ひとまずこれで動くと思います。 <? $str="test2011年5月12日(木)~6月1日(水)test"; $pattern="/(\d+)年(\d+)月(\d+)日((.+?))~(\d+)月(\d+)日((.+?))/"; $replacement="<span class=\"y\">\\1</span>年\n<span class=\"m\">\\2</span>月\n<span class=\"d\">\\3</span>日(\\4)~\n<span class=\"m\">\\5</span>月\n<span class=\"d\">\\6</span>日(\\7)"; $str=preg_replace($pattern,$replacement,$str); //print $str; print nl2br(htmlspecialchars($str)); ?>

sr-ki
質問者

お礼

お礼が大変遅くなり失礼しました。 ご回答を参考にさせていただき何とかうまく解決しました。 どうもありがとうございました。

関連するQ&A