Я хочу разобрать строку hh:mm:ss
. Простым является ([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)
, который ожидает строку 2:3:24
или 02:03:24
.
Я хочу сделать еще один шаг и пройти проверку даже в таких случаях, как
- если вы введете только 56, это должно быть пройдено, так как 56 можно считать за 56 секунд [SS]
- если вы введете 2:3 или 02:03 или 02:3 или 2:03, это должно пройти. 2 минуты и 3 секунды [ММ:СС]
- Если вы введете 20:30:12, пройдите через 20 часов, 30 минут и 12 секунд [ЧЧ:ММ:СС]
- если вы введете 78:12, не пропустите 78 минут, это неправильно....
В основном, если один ":" найден, рассматривайте число до ":" как MM и число после ":" как SS . Если найдено два символа ":", считается ЧЧ:ММ:СС
Я придумал этот узор.
(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)
Кажется, он работает нормально. Я хотел знать любое другое более простое регулярное выражение, которое может выполнить эту работу.