format de plage de dates d'expression régulière dmY
Je devrais écrire une expression régulière pour calculer/valider la date de la plage du format de date 01012022 à 31032022 (de janvier à mars 2022). Pouvez-vous m'aider s'il vous plaît?
^\s*(3[01]|[12][0-9]|0?[1-9])(1[012]|0?[1-9])((?:19|20)\d{2})\s*$
Solution du problème
Vous pouvez le structurer en deux parties.
Match en janvier et mars (car ils ont tous les deux 31 jours):
0[1-9]
matchs jours du 01 au 09[12][0-9]
matchs jours du 10 au 293[01]
matches jours du 30 au 310[13]
correspond aux mois 01 et 03
Match en février :
0[1-9]
matchs jours du 01 au 091[0-9]
matches jours du 10 au 192[0-9]
matchs jours du 20 au 2902
correspond au mois 02
Pour les deux: 2022
matchs année 2022.
Voici la regex complète :
"(((0[1-9]|[12][0-9]|3[01])0[13])|(0[1-9]|1[0-9]|2[0-9])02)(2022)"
Commentaires
Enregistrer un commentaire