やりたいこと
「時刻」を検索する(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文字ある」状態を表します。