- ベストアンサー
※ 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です。
- みんなの回答 (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)); ?>
お礼
お礼が大変遅くなり失礼しました。 ご回答を参考にさせていただき何とかうまく解決しました。 どうもありがとうございました。