I have written the following regex to match human-readable time at the command-line:
^(?:(?:(?:(\d+)d\s*)?(\d+)h\s*)?(\d+)m\s*)?(\d+)s$
Using non-capturing strings, this regex matches "human-readable" time equally-well in the following formats:
1d 2h 3m 4s
1h 2m 3s
1m 2s
1s
...and...
1d2h3m4s
1h2m3s
1m2s
1s
In this regex, if I include a minutes value, I also have to include a seconds value. I.e., I can't simply provide 15m or 1d3m, I have to provide 15m0s or 1d0h3m0s.
Is it possible to extend a regex to match these latter two use cases? How? Please note: I'm not necessarily looking for a drop-in solution, but a pointer in the right direction would be greatly appreciated.
Update
Just a brief update that I made awhile back - this is for regex in Python.