DateTimeのRegExパターンとは何ですか(2008-09-01 12:35:45)?datetimeの正規表現パターンは何ですか(2008-09-01 12:35:45)?
私はこのエラーを取得する:使用
No ending delimiter '^' found
:
preg_match('(?n:^(?=\d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(?(.0?2)(?=.{3,4}(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00))|0?[1-9]|1\d|2[0-8])(?<sep>[/.-])(?<month>0?[1-9]|1[012])\2(?<year>(1[6-9]|[2-9]\d)\d{2})(?:(?=\x20\d)\x20|$))?(?<time>((0?[1-9]|1[012])(:[0-5]\d){0,2}(?i:\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$)', '2008-09-01 12:35:45');
は、このエラーを与える:
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in E:\www\index.php on line 19
この正規表現は、日付、月、時間のいずれかが優れているかどうかを検出しません最大1つまでたとえば2012-65-65 99:99:99が動作します。それ以外は正規表現は素晴らしいです! – darkheir
これは日付を検証するのには不向きだと同意します –
示された正規表現は日付を検証するためのものではありません。文字列の*構文*をチェックして、日付のように見えるかどうかを調べることを意図しています。値を取得したら、通常の日付ライブラリ関数を使用して、指定した日付を検証できます。 –