Regex date jj/mm/yyyy-H:M:S
Résolu
to-me
Messages postés
79
Statut
Membre
-
to-me Messages postés 79 Statut Membre -
to-me Messages postés 79 Statut Membre -
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
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
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question