日付および時刻の正規表現

広告
eyecatch

正規表現のサンプルの中で日付および時刻にマッチする正規表現について解説します。

日付にマッチする正規表現

日付は次のような値( yyyy/mm/dd の形式で一桁の場合はゼロパディングを行う場合)となります。

2020-01-31

日付にマッチする正規表現は次のようになります。

^[0-9]{4}/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])$

以下解説と前提条件です。

年の部分は 0000 から 9999 までなので数値(0-9)が 4 つ連続することになります。この部分の正規表現は次のようになります。

[0-9]{4}

月の部分は 01 から 12 までです。00 から 09 まで、または 10 から 12 までとなります。この部分の正規表現は次のようになります。

(0[1-9]|1[0-2])

日の部分は 01 から 31 までです。00 から 09 まで、または 10 から 29 まで、または 30 か 31 となります。この部分の正規表現は次のようになります。

(0[1-9]|[12][0-9]|3[01])

年、月、日の部分をそれぞれをスラッシュ(/)で結び、これに行頭にマッチするキャレット(^)と行末にマッチするドル記号を($)を追加して組み合わせたものが日付を表す正規表現となります。

※ 2月30日 など存在しない日付のチェックは行っていません。

時刻にマッチする正規表現

時刻は次のような値( hh:mm:ss の形式で一桁の場合はゼロパディングを行う場合、 24 時間制)となります。

08:25:41
21:06:18

時刻にマッチする正規表現は次のようになります。

^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$

以下解説と前提条件です。

時間の部分は 00 から 23 までなので 00 から 19 まで、または 20 から 23 までとなります。この部分の正規表現は次のようになります。

([01][0-9]|2[0-3])

分および秒の部分は 00 から 59 までとなります。この部分の正規表現はそれぞれ次のようになります。

[0-5][0-9]

時間、分、秒の部分をそれぞれをコロン(:)で結び、これに行頭にマッチするキャレット(^)と行末にマッチするドル記号を($)を追加して組み合わせたものが時刻を表す正規表現となります。

-- --

正規表現のサンプルの中で日付および時刻にマッチする正規表現について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。