Так что мне нужно получить часы, минуты и секунды из таких записей:
- 04: 43: 12
- 9.43.12
- 1: 00
- 01,04
- 59
- 09
Первые два часа, минуты и секунды.
Рядом есть минуты и секунды.
Последние два - только секунды.
И я придумал это регулярное выражение, которое работает ..:
\A(?<hours>\d{1,2})(?::|\.)(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<seconds>\d{1,2})\z
Но это уродливо, и я хочу изменить его, чтобы не было 3 разных выражений (в основном просто для изучения). Я попробовал это:
\A(?:(?<hours>\d{1,2})(?::|\.){0,1})(?:(?<minutes>\d{1,2})(?::|\.){0,1})(?:(?<seconds>\d{1,2}){0,1})\z
Но это не работает - иногда портятся минуты и секунды. У меня болит мозг, и я не могу понять, что я делаю неправильно.