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 29

  • 3[01]matches jours du 30 au 31

  • 0[13]correspond aux mois 01 et 03


Match en février :


  • 0[1-9]matchs jours du 01 au 09

  • 1[0-9]matches jours du 10 au 19

  • 2[0-9]matchs jours du 20 au 29

  • 02correspond au mois 02


Pour les deux: 2022matchs 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

Posts les plus consultés de ce blog

Comment signer la connexion OKEx API version 5 avec websockets ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"