donc j'ai besoin pour obtenir les heures, les minutes et les secondes sur les entrées comme celles-ci:Correspondant heures/minutes/secondes dans les expressions régulières - une meilleure façon?
- 04:43:12
- 9.43.12
- 1:00
- 01,04
Les deux premiers sont les heures, les minutes et les secondes. À côté de est minutes et secondes. Les deux dernières secondes ne sont que quelques secondes.
Et je suis venu avec cette expression rationnelle, qui fonctionne ..:
\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
Mais il est laid, et je veux refactoriser vers le bas pour ne pas être 3 expressions différentes (la plupart du temps juste pour apprendre). J'ai essayé ceci:
\A(?:(?<hours>\d{1,2})(?::|\.){0,1})(?:(?<minutes>\d{1,2})(?::|\.){0,1})(?:(?<seconds>\d{1,2}){0,1})\z
Mais cela ne fonctionne pas - minutes et secondes parfois se foirent. Mon cerveau me fait mal et je n'arrive pas à comprendre ce que je fais de mal.
Ceci n'est PAS indépendant de la langue. La syntaxe des expressions régulières est différente pour différentes langues. –