Я хочу проанализировать строку 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 , Если найдено два ":", считайте HH: MM: SS
Я придумал этот шаблон.
(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)
Кажется, он работает нормально. Я хотел знать любое другое более простое регулярное выражение, которое может выполнить эту работу.