I want to parse a hh:mm:ss string.
A simple one is ([0-1]?\\d|2[0-3]):([0-5]?\\d):([0-5]?\\d) which expects 2:3:24 or 02:03:24<
@Tim Pietzcker covers the OP's requirement for a HH:MM:SS parser where SS was mandatory, i.e.
If you permit me to deviate from the OP's requirement for a bit, and consider a case where HH is mandatory, i.e.
The regex I came up with was:
^([0-1]?\d|2[0-3])(?::([0-5]?\d))?(?::([0-5]?\d))?$
Let's break it down:
([0-1]?\d|2[0-3]) - matches for hours(?::([0-5]?\d))? - optionally matches for minutes(?::([0-5]?\d))? - optionally matches for seconds