Regex pour les dates en Python : un guide

Bonjour cher Python-développeur,

il n'est pas rare que nous ayons à traiter des dates dans notre travail quotidien de développeur. Il existe de nombreuses bibliothèques qui peuvent aider, mais parfois, l'utilisation d'expressions régulières (regex) est la méthode la plus simple. Dans ce blog, je vais présenter différents modèles de regex pour extraire des dates dans différents formats.

Pourquoi Regex ?

Les expressions régulières offrent une possibilité rapide et efficace, Motifs dans les textes de reconnaître un format. Par exemple, si l'on utilise un format de date dans une grande Quantité de texte Regex est souvent la solution la plus rapide, même si elle n'est pas toujours Modèles PNL offrent naturellement des possibilités particulières.

Regex pour différents formats de date

MM/DD/YYYY ou MM-DD-YYYY

\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b

DD/MM/YYYY ou DD-MM-YYYY

\b(0[1-9]|[12]\d|3[01])[-/](0[1-9]|1[0-2])[-/](19\d\d|20\d\d)\b

AAAA/MM/DD ou AAAA-MM-DD

\b(19\d\d|20\d\d)[-/](0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])\b

MM-DD-YY ou MM/DD/YY

\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](\d\d)\b

YYYY-MM-DD (ISO 8601)

\b(19\d\d|20\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b

Exemple de code Python

Voici un exemple simple de la façon dont on peut utiliser ces motifs de regex dans Python peut utiliser :

import re
def find_dates(texte, modèle) :
    return re.findall(pattern, text)
text = "La date est le 09/02/2023 et l'autre date est le 12-12-2024".
pattern = r"\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b"
dates = find_dates(texte, modèle)
print("Dates trouvées :", dates)

Mot de la fin

La reconnaissance des dates avec Regex en Python est une compétence précieuse qui peut vous faire gagner beaucoup de temps. Il faut cependant noter que ces modèles ne sont pas optimisés pour les mois de moins de 31 jours ou les années bissextiles, car les regex ne peuvent implémenter que des règles fixes. Pour des besoins plus complexes, il est préférable d'utiliser une bibliothèque de dates spécialisée comme dateutil ou pandas ou le Konfuzio SDK envisager de le faire.

J'espère que ce guide vous a été utile ! Si vous avez des questions ou des suggestions, n'hésitez pas à laisser un commentaire.

A la prochaine fois !

"
"
Avatar de Florian Zyprian

Derniers articles