Więc muszę dostać godziny, minuty i sekundy z wpisami takie jak:Dopasowywanie godzin/minut/sekund w wyrażeniach regularnych - lepszy sposób?
- 04:43:12
- 9.43.12
- 1:00
- 01,04
Pierwsze dwa to godziny, minuty i sekundy. Obok jest minuty i sekundy. Ostatnie dwa to tylko sekundy.
I wymyśliłem tego regexp, który działa ..:
\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
Ale to brzydkie, i chcę byłaby go w dół, aby nie mieć 3 różne wyrażenia (głównie tylko do nauki). Próbowałem tego:
\A(?:(?<hours>\d{1,2})(?::|\.){0,1})(?:(?<minutes>\d{1,2})(?::|\.){0,1})(?:(?<seconds>\d{1,2}){0,1})\z
Ale to nie działa - minuty i sekundy czasami się psują. Mój mózg cierpi i nie mogę zrozumieć, co robię źle.
NIE jest to język-agnostyk. Składnia wyrażeń regularnych jest różna dla różnych języków. –