Python Module RE - Vérifier le format [Résolu]

Signaler
-
Messages postés
487
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
29 avril 2021
-
Bonjour !

J'aurai besoin d'aide, j'ai trouvé plusieurs docs sur le module Regex de python mais je ne comprend pas comment répondre à mes attentes.

Mon objectif est de vérifier si l'heure entré est au bon format. Voici les formats que je souhaite accepter :
- hh.mm/hh.mm
- h.mm/hh.mm
- hh.mm/h.mm
- h.mm/h.mm

J'ai réussi à vérifier si les "." et le "/" sont présents, mais je n'arrive pas à gérer la quantité de chiffre avant et après.

J'avais fais une contrainte comme ça :
'(\d\d|\d)+[.]\d\d+[/](\d\d|\d)+[.]\d\d'

Mais je me suis rendu compte que c'était équivalent à :
'\d+[.]\d+[/]\d+[.]\d'

Je vous montre mon petit programme :
=====================================
import re

heure = input("Entrer l'heure (hh.mm/hh.mm) : ")

condition = '\d+[.]\d+[/]\d+[.]\d'
 
def check(dt):

   if(re.search(condition, dt)):
      print("Valid Time")

   else:
      print("Invalid Time")

check(heure)

=====================================

Si quelqu'un a des connaissances dans ce module, je serai enchanté d'avoir son aide !

Merci et bonne journée :)

Sam

2 réponses

Problème résolu, j'ai utilisé :
condition = '([0-2][0-9]|[0-9])[.][0-5][0-9][/]([0-2][0-9]|[0-9])[.][0-5][0-9]'
Messages postés
487
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
29 avril 2021
11
Bonjour,
Merci pour la solution, cela va en aider plus d'un ici sur le forum.

Bonne continuation.
Pour être encore plus rigoureux sur la notation de l'heure, j'ai peaufiné et utilisé :
condition = '^([0-1][0-9]|[2][0-3]|[0-9])[.][0-5][0-9][/]([0-1][0-9]|[2][0-3]|[0-9])[.][0-5][0-9]$'
Messages postés
487
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
29 avril 2021
11
Votre solution en Tutoriel sur le forum serait nickel pour ceux et celles qui cherchent ces formules.

Inscrivez-vous et créez un tutoriel sur la question.