「時刻」を検索する(0埋めなし)(書式:〇時〇分〇秒 と 〇:〇:〇)

「文字列検索」の正規表現サンプル

やりたいこと

「時刻」を検索する(0埋めなし)(書式:〇時〇分〇秒 と 〇:〇:〇)

 

正規表現

([0-9]|1[0-9]|2[0-3])[時:]([0-9]|[1-5][0-9])[分:]([1-5][0-9]|[0-9])?

赤文字:メタ文字

 

検索結果

検索前

01時01分01秒
1時01分01秒
01時1分01秒
01時01分1秒
1時1分1秒
20時20分20秒
01:01:01
1:01:01
01:1:01
01:01:1
1:1:1
20:20:20
010101
202020

検索後

01時01分01秒
1時01分01秒
01時1分01秒(※補足参照)
01時01分1秒
1時1分1秒
20時20分20秒
01:01:01
1:01:01
01:1:01(※補足参照)
01:01:1
1:1:1
20:20:20
010101
202020

赤文字:条件に一致する文字列

補足

上記の正規表現では「01時1分01秒」「01:1:01」などのイレギュラーな値もヒットするので注意が必要です。

「^([0-9]|1[0-9]|2[0-3])[時:]([0-9]|[1-5][0-9])[分:]([1-5][0-9]|[0-9])秒?$」で検索すればイレギュラーな値はヒットしませんが、文中に時刻(「1時1分1秒」「1:1:1」など)がある場合はそれもヒットしなくなります。

解説

■([0-9]|1[0-9]|2[0-3])
 [0-9]:0~9のいずれか1文字を表します。
 1[0-9]:10~19のいずれかを表します。
 [0-3]:0~3のいずれか1文字を表します。
     よって、2[0-3]は20~23のいずれかを表します。
 |:「又は」を表します。

■[時:]
 「時」あるいは「:」を表します。

■([0-9]|[1-5][0-9])
 [0-9]:0~9のいずれか1文字を表します。
 [1-5]:1~5のいずれか1文字を表します。
     よって、[1-5][0-9]は10~59のいずれかを表します。
 |:「又は」を表します。

■[分:]
 「分」あるいは「:」を表します。

■([1-5][0-9]|[0-9])
 [0-9]:0~9のいずれか1文字を表します。
 [1-5]:1~5のいずれか1文字を表します。
     よって、[1-5][0-9]は10~59のいずれかを表します。
 |:「又は」を表します。

■秒?
 ?:直前の文字を0回もしくは1回だけ繰り返します。
   よって、秒?は「秒」という文字が「ない」あるいは「1文字ある」状態を表します。