Rechercher : dans
Par :

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

Dernière réponse le 11 sep 2009 à 11:07:23 to-me, le 3 sep 2009 à 10:36:33 
 Signaler ce message aux modérateurs

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

Configuration: Linux
Firefox 3.0.13

Meilleures réponses pour « regex date jj/mm/yyyy H:M:S » dans :
[Excel] Ajouter une date fixe dans une cellule VoirSi vous souhaitez insérer la date du jour en cours dans une cellule, au format JJ/MM/AAAA, et que celle-ci reste fixe, sans remise à jour à chaque ouverture du fichier (par exemple pour indiquer la date de création du fichier): Tapez simplement ...

1

lami20j, le 3 sep 2009 à 11:00:12

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 106485010510997108

Répondre à lami20j

2

to-me, le 3 sep 2009 à 12:11:21

Merci pour cette réponse rapide!

Je vais essayer tout ça

Répondre à to-me

3

to-me, le 11 sep 2009 à 09:08:26

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

Répondre à to-me

4

lami20j, le 11 sep 2009 à 09:36:08

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

106485010510997108

Répondre à lami20j

5

 to-me, le 11 sep 2009 à 11:07:23

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

@+

Répondre à to-me
Collection CommentÇaMarche.net