※ ChatGPTを利用し、要約された質問です(原文:preg_match_allによる文字列切り出しについて)
preg_match_allによる文字列切り出しの方法と注意点
このQ&Aのポイント
preg_match_allを使った文字列切り出しの方法についてご質問いただきました。
質問にあるコードを使って、データから日付を抽出し、配列に収める方法を説明します。
ただし、注意点として、一部のデータについては正しく切り出せない可能性があるので、修正が必要です。
preg_match_allによる文字列切り出しについて
preg_match_allによる文字列切り出しについて
宜しくお願い致します。
$data[0] = "あいうえおかきくけこ2011年2月3日さしすせそ";
$data[1] = "あいうえおかきくけこ2014/5/6さしすせそ";
$data[2] = "あいうえおかきくけこ2017-8-9さしすせそ";
$data[3] = "あいうえおかきくけこ2010.11.12さしすせそ";
$data[4] = "あいうえおかきくけこ13時-14時さしすせそ";
というデータから日付だけを抽出し、切った場所で配列に収めたいと考えております。
自分なりに考えたパターンは、
for($x = 0; $x < count($data); $x++)
{
preg_match_all("/\\d{4}[\-\/\.|年]|\\d{1,2}[\-\/\.|月]|\\d{1,2}/u",$data[$x],$data_array);
print $data_array[0][0];
print $data_array[0][1];
print $data_array[0][2];
print "<br>";
}
これを実行すると、下記の出力になってしまいます。
2011年2月3
2014/5/6
2017-8-9
2010.11.12
1314
ファイルの文字コードは「UTF-8」です。
最後の「1314」は$data[4]の「13時-14時」の部分が切り出されてしまい、ここは無視して欲しいのです。
この部分で数時間悩んでおり、いい加減、気持ち悪くなってきました。
またまたお願いで大変申し訳ないのですが、どなたか助けてくださいー
( iдi )
お礼
ありがとうございます! お礼が遅くなりました。 頂いた情報を元に、プログラムに当てはめたら期待通りの結果になりました! 本当にたすかりましたー!