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