自由形式のテキストで日付を見つけるための最良のアプローチは何でしょうか?ユーザーが次のようないくつかの異なる方法で日付を配置できる投稿。
- 7月14日と15日
- 7/14&7/15
- 7-14&7-15
- 14日(土)と15日(日)
- 7月14日と15日土曜日
等々。正規表現は、このタイプのものに対する私の最良の選択preg_match
ですか?また、開始日と終了日の2つの日付があるかどうかを検索したいのですが、検索するテキストには1つまたは2つの日付がある可能性があります。
これはこれまでの私のPHPコードです:
$dates1 = '01-01';
$dates2 = 'July 14th & 15th';
$dates3 = '7/14 & 7/15';
$dates4 = '7-14 & 7-15';
$dates5 = 'Saturday 14th and Sunday 15th';
$dates6 = 'Saturday July 14th and 15th';
$regexes = array(
'/\s(1|2|3|4|5|6|7|8|9|10|11|12)\/\d{1,2}/', //finds a date
'/\s(1|2|3|4|5|6|7|8|9|10|11|12)-\d{1,2}/', //finds another date
'%\b(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])\b%', //finds date format dd-mm or dd.mm
);
foreach($regexes as $regex){
preg_match($regex,$dates,$matches);
}
var_dump($matches);