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 :

Enlever les premiers zéros d'une chaine


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut Enlever les premiers zéros d'une chaine
    Bonjour,

    Je suppose que cela est simple, mais je n'y arrive pas
    Je veux faire une expression régulière afin de supprimer tous les premiers zéros d'une chaine. Ex :
    00584 -> 584
    025108 -> 25108
    000001 -> 1

    J'ai essayé ceci :
    $id_com = preg_replace('^0*[0-9]$', '', $id_com);
    Ce qui ne fonctionne pas (No ending delimiter '^' found)

    Alors si vous avez une solution, je suis preneur.
    Merci de vos lumières.

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Bonjour

    Si ta chaîne est toujours en réalité un nombre, tu peux essayer de faire
    $foo = $foo + 0; (transtypage implicite)
    ou encore $foo = (int)$foo; transtypage forcé.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il est clair qu'une expression régulière n'est pas nécessaire pour réaliser cette opération d'autant plus que ça devrait rester une chaîne à l'issue du remplacement.

    Citation Envoyé par max-mag
    $id_com = preg_replace('^0*[0-9]$', '', $id_com);
    No ending delimiter '^' found
    Décidément on y a le droit au moins une fois par semaine à cette erreur Il aurait fallu utiliser un caractère séparateur afin de marquer le début ainsi que la fin du motif. Celui-ci peut être, pour ainsi dire, quelconque (métacaractère à exclure de préférence) et est requis car vous n'êtes pas sans savoir que l'on peut faire figurer des options globales à la fin de l'expression (i : insensible à la casse, s : pour que le métacaractère . inclut les retours à la ligne, etc). Une correction aurait été :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_com = preg_replace('~^0*~', '', $id_com);
    (et il y a vraiment plus simple comme expression)

    A lire et à conserver dans ses favoris : Initiation aux expressions régulières en PHP

Discussions similaires

  1. Enlever les balises HTML d'une chaine de caractère
    Par okoweb dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2011, 17h19
  2. Réponses: 1
    Dernier message: 09/09/2011, 20h44
  3. prendre les premiers caractères d'une chaine
    Par tytous dans le forum PL/SQL
    Réponses: 5
    Dernier message: 23/12/2010, 10h58
  4. Supprimer les premiers caractères d'une chaine
    Par Balbuzard dans le forum Débuter
    Réponses: 16
    Dernier message: 16/12/2010, 10h42
  5. enlever les espaces blancs d une chaines de caracteres
    Par Mobistar dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 04/08/2008, 19h26

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