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égulière pour un nombre


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut Expression régulière pour un nombre
    Bonjour à tous !

    J'ai une variable $var dont la valeur change via une boucle while, elle prend ces valeurs l'une après l'autre :
    - $var = "29,5,18,35"
    - $var = "18,35"
    - $var = "35"
    - $var = "17,47,2"

    Je cherche à n'afficher "ok" que lorsque la variable contient le nombre "5" et seulement "5", pas "35" qui contient 5 aussi (donc à afficher "ok" que la première fois).

    J'avais fait cette condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( preg_match('#[,]{0,1}5[,]{0,1}#',$var) ){
          echo "ok";
    }
    Cela fonctionne pour les deux premières fois, mais lorsque $var=35 tout court cela affiche aussi "ok"...

    Merci d'avance à ceux qui pourront m'aider ^^

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    Bonjour,

    Depuis mon portable, je dirais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( preg_match('#[,]{0,1}[5]{1}[,]{0,1}#',$var) ){
          echo "ok";
    }
    Je ne peux pas tester, j'ai pas installé php sur mon android
    NginX, SphinxSearch Addict !!

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    stop d'utiliser les regex pour tout et n'importe quoi, ça devient vraiment ridicule ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $var = '29,5,18,35';
     
    if (in_array('5', explode(',', $var))) {
        echo 'OK';
    }

  4. #4
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut
    Sorry stealth35, mais c'est qu'en fait je voulais faire d'une pierre deux coups parce que j'en ai besoin aussi en condition SQL :p

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par PtitGénie Voir le message
    Sorry stealth35, mais c'est qu'en fait je voulais faire d'une pierre deux coups parce que j'en ai besoin aussi en condition SQL :p
    ça aussi c'est un problème, t'as pas a faire ça en base de données, crée une autre table et fait des jointures

  6. #6
    Membre régulier Avatar de PtitGénie
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 231
    Points : 88
    Points
    88
    Par défaut
    Oui je sais bien, mais parfois la vie fait qu'on arrive dans un projet, qu'on ne peut pas toucher à certaines choses, et qu'on est obligé de faire avec hélas

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par PtitGénie Voir le message
    Oui je sais bien, mais parfois la vie fait qu'on arrive dans un projet, qu'on ne peut pas toucher à certaines choses, et qu'on est obligé de faire avec hélas
    utilise FIND_IN_SET

Discussions similaires

  1. Expression régulière pour contrôle de nombre
    Par ruza01 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 02/06/2012, 11h53
  2. Réponses: 22
    Dernier message: 18/07/2006, 15h05
  3. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  4. Expression régulière d'un nombre strictement positif?
    Par rlnd23 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/11/2005, 22h10
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

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