Quelle expression régulière en Python dois-je utiliser pour faire correspondre des dates comme celle-ci : "11/12/98" ?
Réponses
Trop de publicités?Je trouve que le RE ci-dessous fonctionne bien pour Date dans le format suivant ;
- 14-11-2017
- 14.11.2017
- 14|11|2017
Il peut accepter l'année 2000-2099
N'oubliez pas d'ajouter $ à la fin, sinon acceptez le 14-11-201 ou 20177
date="13-11-2017"
x=re.search("^([1-9] |1[0-9]| 2[0-9]|3[0-1])(.|-)([1-9] |1[0-2])(.|-|)20[0-9][0-9]$",date)
x.group()
sortie = '13-11-2017'
En utilisant cette expression régulière, vous pouvez valider différents types d'échantillons de date/heure, juste un petit changement est nécessaire.
^\d\d\d\d/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])$
-->validez ceci : 12/7/2018 13:00:00
pour votre format, vous pouvez le changer en :
^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[0-2])/\d\d$
--> valide ceci : 12/11/98
Eh bien, d'après ma compréhension, simplement pour faire correspondre ce format dans une chaîne donnée, je préfère cette expression régulière :
pattern='[0-9|/]+'
pour correspondre au format de manière plus stricte, les travaux suivants :
pattern='(?:[0-9]{2}/){2}[0-9]{2}'
Personnellement, je ne peux pas être d'accord avec la réponse d'unutbu car nous utilisons parfois des expressions régulières pour "trouver" et "extraire", pas seulement "valider".