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 :

Récupérer une valeur dans une chaîne


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut Récupérer une valeur dans une chaîne
    Bonjour,

    J'ai des valeurs dans ce genre : BE30056_062_XXX, et j'aimerai extraire à chaque fois celle-ci 30056.
    En fait , il faudrait que je récupère les 5 digits avec les 2 Lettres.

    Merci d'avance !
    Nicolas

  2. #2
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Bonjour,

    Tu as deux solutions : 1 utiliser une regex, 2 un explode (un peu crade mais ça marche)

    Option 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $string = 'BE30056_062_XXX';
     
    $extract = explode('_',$string);
     
    echo $extract[0]; // affichera BE30056
    Pour la regex :

    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
    16
    17
    18
    19
    20
     
    $string = 'BE30056_062_XXX';
     
    preg_match('/(BE[0-9]*)_.*/iu', $string , $matches);
     
    var_dump($matches);
     
    /**
     
    voici l'affichage du var_dump : 
     
    array(2) {
      [0]=>
      string(15) "BE30056_062_XXX"
      [1]=>
      string(7) "BE30056"
    }
     
     
    **/
    @+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Merci beaucoup Inazo pour ton aide !

    Je suis désolé je me suis mal exprimé, il me faut les 5 digits mais sans les 2 lettres.
    On y est presque

  4. #4
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Pas de soucis du coup la regex devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('/BE([0-9]*)_.*/iu', $string , $matches);
    @+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Merci beaucoup !

    Ah oui , les lettres peuvent être différentes de BE
    BE30056_062_XXX';
    XX30056_062_XXX';

    Doit afficher 30056 , et avec substr c'est possible ?

    Merci

  6. #6
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Dans ce cas tu utilises ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('/[a-zA-Z]{2}([0-9]*)_.*/iu', $string , $matches);

    Le {2} signifie que ce sera obligatoirement deux lettres.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Points : 114
    Points
    114
    Par défaut
    Merci beaucoup Inazo pour ton aide ,c'est bon ! bon week-end

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/03/2016, 14h14
  2. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Récupérer la valeur d'une ligne dans une procédure stockée
    Par mobscene dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 07/12/2006, 19h29
  5. Réponses: 4
    Dernier message: 07/08/2006, 17h01

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