IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expression réguliere aide [Fait] [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut Expression réguliere aide
    Bonjour,

    je suis naze en expression réguliere alors il me faudrai que je n'accepte que dans ma chaine

    - que les chiffre 0 à 9
    - que des tirets "-"
    - que des deux points ":"

    une ame charitable pour m'aider ?

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    '^([[:digit:]]|-)+$'

    ça non ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Arf smiley de m****


  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    çà plante avec çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('^([[:digit:]]|-|:)+$',$chaine);
    j'ai l'erreur suivante:

    Warning: preg_match() [function.preg-match]: No ending delimiter '^' found

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    il faut peut etre pas utiliser preg_match() en faite ?

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Essaye ereg

  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Si ça ne marche pas, essaye d'echapper les : ou le - car ce sont peut etre des caractères réservés.
    \: et \-

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    ereg ne m'enleve rien du tout de ma chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ereg('/^([[:digit:]]|\-|\:)+$',$chaine);
    je seche là

  9. #9
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Heuu montre comment tu l'utilises.
    Ta condition et ce qu'il y a après.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    hello,

    un simple preg_match( '#^[0-9:-]+$#' , $taVar )...

    ou faut pas mélanger ?

    non ?
    Pourfendeur de singletons en croisade

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    en gros je recois des trucs du type:

    $date contient une date de la forme:
    2006-07-05T13:08:39Z
    ou encore
    [2006-07-07 10:51:44]
    etc...
    dans tous les cas il y à la date de présent.

    en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('^([[:digit:]]|-|:)+$', $date );
    çà ne m'enleve rien du tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match( '#^[0-9:-]+$#' , $date )
    pareil çà n'enleve rien

    je doit faire un truc qui va pas là ...

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Houla mais attend je crois qu'on part pas sur la même chose là.
    Tu veux vérifier si la chaine est correcte ou lui supprimer tout ce qui n'est pas un chiffre : ou - ???

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    je veux supprimer ce qui ne va pas

    désolé me suis super mal pris pour exposer mon problème

    en gros je veux pouvoir garder seuleument
    des chiffres, : et -

  14. #14
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Okyyyy !
    Donc là c'est différent
    Je n'ai plus trop de temps devant moi la donc je ne peux que te conseiller de regarder la fonction preg_replace.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    ah bah en expliquant correctement le pourquoi du comment on comprend un peu mieux

    preg_replace( '#[^0-9: -]#' , null , $taVar );

    je t'ai rajouté les espaces dans les trucs à garder, sinon ta date risque d'etre difficile à exploiter...
    Pourfendeur de singletons en croisade

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    j'ai l'impression que preg_replace ne fonctionne pas du tout comme je veux, çà ne m'enleve rien du tout.

    bon voilà ce que j'ai fait, c'est hyper bourrin, mais çà fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    		$array = array('0','1','2','3','4','5','6','7','8','9','-',':');
    		$chaine='';
     
    		for ($x=0;$x<strlen($date);$x++){
    			if(in_array(substr($date,$x,1),$array)){		
    				$chaine .= substr($date,$x,1);
    			}elseif (substr($date,$x,1)==' ' || substr($date,$x,1)=='T' ){
    				$chaine .= ' ';
    			}
    		}
     
    		$datetime = mktime($chaine);
     
    		$date = date('d-m-Y H\hi', $datetime);

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    L'exemple proposé auparavant est presque correct, seulement il ne faut pas donner NULL mais une chaîne vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo preg_replace('#[^0-9: -]#', '', $taVar);
    Au passage, voici un tuto pour les regex :
    http://g-rossolini.developpez.com/tu...ns-regulieres/

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    1 - j'ai vraiment fait le boulet depuis tout à l'heure en faite je n'affecter pas le résultat à une autre variable pensent que la fonction le faisait.

    2 - Merci à tous

    là çà fonctionne nikel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		$date = str_replace('T', ' ',$date);
    		$date = preg_replace('#[^0-9: -]#', '' , $date );

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    tiens c'est marrant ca... j'ai justement testé avec NULL et ca fonctionnait... ou alors j'ai eu la berlu
    Pourfendeur de singletons en croisade

  20. #20
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    C'est surtout que je trouve ça sémantiquement incorrect. Chacun sa vision des choses ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour les expressions régulieres
    Par brahim94 dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2009, 09h31
  2. Réponses: 3
    Dernier message: 12/06/2009, 09h16
  3. Formatage d'une date a l'aide d'expression réguliere
    Par sunshine2004 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/04/2008, 22h45
  4. aide pour expression réguliere
    Par guiillaume63 dans le forum Langage
    Réponses: 11
    Dernier message: 23/06/2006, 21h15
  5. aide sur les expressions régulieres
    Par STEPH69000 dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo