Regex date jj/mm/yyyy-H:M:S

[Résolu/Fermé]
Signaler
Messages postés
72
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
26 mars 2010
-
Messages postés
72
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
26 mars 2010
-
Bonjour à tous,


J'ai une expression régulière qui ne fonctionne pas:
ereg("((0{0,1}[1-9]|1[012])/(0{0,1}[1-9]|[12][0-9]|3[01])/(19|20)[0-9][0-9])[\-](((0[0-9]|[0-9]|1[0-9]|2[0-3])(\:|\s?[hH]\s?|\.))((0[0-9]|[0-9]|[1-5][0-9])(\:|\s?[mM]\s?|\.)?)?((0[0-9]|[0-9]|[1-5][0-9])(\s?[sS]\s?)?)?)"

La première partie je l'ai testé elle fonctionne(valide datejj/mm/yyyy), je l'ai testé ainsi:
^(0{0,1}[1-9]|1[012])/(0{0,1}[1-9]|[12][0-9]|3[01])/(19|20)[0-9][0-9]$

mais quand j'ajoute la deuxième partie pour accpeter datejj/mm/yyyy-HH:mm:ss
plus aucune date n'est acceptée
[\-](((0[0-9]|[0-9]|1[0-9]|2[0-3])(\:|\s?[hH]\s?|\.))((0[0-9]|[0-9]|[1-5][0-9])(\:|\s?[mM]\s?|\.)?)?((0[0-9]|[0-9]|[1-5][0-9])(\s?[sS]\s?)?)?

Vous avez une idée svp?


Merci

To-me

5 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
Salut,

Je ne vois pas pourquoi tu utilises [hH], [mM], [sS]

Avec ta regex en fait tu parses quel format? Donne un exemple de ce que ta regex doit trouver.
D'après ce que je vois tu ne parses en aucun cas jj/mm/aaaa mais mm/jj/aaaa

Pour simplifier la regex tu peux mettre au lieu de [0-9] la classe \d

2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
72
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
26 mars 2010
8
Salut!

J'ai trouvé l'expression régulière. Si ça peut aider la voici:

^(0{0,1}[1-9]|1[012])/(0{0,1}[1-9]|[12][0-9]|3[01])/(19|20)[0-9][0-9][\-]((0[0-9]|[0-9]|1[0-9]|2[0-3])(\:|\s?[hH]\s?|\.))((0[0-9]|[0-9]|[1-5][0-9])(\:|\s?[mM]\s?|\.)?)?((0[0-9]|[0-9]|[1-5][0-9])(\s?[sS]\s?)?)?$

Voilà!

Merci pour votre aide.

Bye
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
Salut,


Il s'agit de format date jj/mm/yyyy-HH:mm:ss

Donc les 3 classes de caractères nont rien à faire dans la regex.

[hH]
[mM]
[sS]


Puisque dans ce cas c'est ce genre de dante qui sera reconnu (enfin, je n'ai pas vérifié toute la regex)
03/06/2008-10H:23M:25S
Messages postés
72
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
26 mars 2010
8
Merci pour cette réponse rapide!

Je vais essayer tout ça
Messages postés
72
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
26 mars 2010
8
Oups c'est vrai. Dsl!

Ma regex prend mm/jj/aaaa-H:M:S , c'est moi qui avec un split et un mktime() récupère chaque partie de la date pour générer un timestamp conforme à ce que je veux.

Elle prend en entrée par ex 12/12/2009-12:12:12

dsl

@+