Je cette expression régulière qui correspond aux chaînes suivantes:Aide en simplifiant ce modèle d'expression régulière
<!-- 09-02-2009 --->
<!-- 09-02-2009 12:00:00 --->
<!-- 09-02-2009 12:00:00 A --->
<!-- 09-02-2009 12:00:00 AM --->
Voici le schéma:
<!-- (?<month>\d{2}?)-(?<day>\d{2}?)-(?<year>\d{4}?)(?:(?: ?\d{2}:?){3}?(?: ?[aApP][mM]?)?)? --->
modèle mis à jour, par twistol:
<!-- (?<month>\d{2}?)-(?<day>\d{2}?)-(?<year>\d{4}?)(?<time>(?: ?(?:\d{2}:){2}\d{2})?(?: ?[aApP][mM]?)?)? --->
Y at-il quelque chose que je peux faire pour simplifier cette pa ttern?
Merci!
EDIT
Voici le modèle que je suis venu avec tous les commentaires/réponses, ainsi que la validation intégrée. Il est un peu laid, mais qui a dit regex doit être assez? : P
<!-- (?<month>(?:0[1-9]|1[0-2]))-(?<day>(?:0[1-9]|1[0-9]|2[0-9]|3[01]))-(?<year>\d{4})(?<time> (?:0[0-9]|1[0-9]|2[0-3]):(?:[0-5][0-9])(?::[0-5][0-9])?(?: [aApP][mM]?)?)? --->
il correspondra à des dates valides dans les formats suivants:
<!-- 09-02-2009 --->
<!-- 09-02-2009 12:00 --->
<!-- 09-02-2009 12:00 A --->
<!-- 09-02-2009 12:00 AM --->
<!-- 09-02-2009 12:00:00 --->
<!-- 09-02-2009 12:00:00 A --->
<!-- 09-02-2009 12:00:00 AM --->
Cela dépend de ce que la saveur de regex que vous utilisez. Perl, JS, etc – pavium
ne peut pas dire que je peux aider à le simplifier, mais ce bit ne correspondrait pas aussi "11:11:11:" (notez le supplément :)? '(?:? \ d {2}:?) {3}?' – Twisol
Désolé je n'ai pas spécifié, je l'utilise dans un projet C#. – Anders