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 :

Extraire une valeur si elle est présente [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut Extraire une valeur si elle est présente
    bonjour

    les regex j'ai jamais réussi à comprendre, c'est pas faute d'avoir essayé

    je construis une requête dans une fonction
    cette requête peut (pas obligé) contenir : sous-traitant="nom du gars"

    dans une autre fonction plus loin, pour affichage, je voudrai extraire la valeur entre guillemets

    j'ai pondu ça mais ça ne marche pas (ça détecte comme il faut la présence ou non de la chaîne mais ça ne me renvoie pas la valeur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/(sous-traitant = \")?(\")/i", $criteria, $res)
    merci d'avance pour votre aide
    Dia [ Page DVP ] [ Site pro ]

  2. #2
    Membre éclairé Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Par défaut
    C'est marrant mais tu as mis les parenthèses pile là où il faut pas (à part ça c'est presque bon)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/sous-traitant = \"(.+)\"/i", $criteria, $res);
    Ou tu peux aussi faire ça si tu ne veux pas obliger à ce qu'il y ai des espaces autour du = (comme ça le fait qu'il y ai un espace ou pas ça fera pas bugger l'expression)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("/sous-traitant\s*=\s*\"(.+)\"/i", $criteria, $res);

  3. #3
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    salut

    merci pour ta réponse, ça marche déjà mieux que la mienne

    par contre j'ai quand même un soucis :

    si je prends par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $criteria = 'truc = "machin" et sous-traitant = "s t 1" et bidule = "chose"'
    il me sort ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Array
    (
        [0] => sous-traitant = "s t 1" et bidule = "chose"
        [1] => s t 1" et bidule = "chose
    )
    il va chercher le dernier " de la chaîne

    y aurait-il moyen d'y remédier ?
    (sachant que le caractère " n'apparaîtra jamais dans le nom à extraire)

    merci encore d'avance
    Dia [ Page DVP ] [ Site pro ]

  4. #4
    Membre éclairé Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Par défaut
    Ah... Alors essayes avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("@sous-traitant\s*=\s*\"([^\"]*)\"@i", $criteria, $res);
    Par contre n'essayes pas de mettre des " dans le nom, par ce que ça va bugger, et tu peux pas non plus les échaper avec \

  5. #5
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    c'est nikel, merci beaucoup pour ton aide
    Dia [ Page DVP ] [ Site pro ]

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

Discussions similaires

  1. Extraire une valeur entiere d'une chaine de caractere
    Par Aloneghost dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2006, 13h23
  2. Extraire une valeur RDF en javascript?
    Par greg49 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2006, 09h49
  3. [VBA-E] Vérifier si une suite de caractère est présente
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 21/03/2006, 11h44
  4. Extraire une valeur d'une ligne avec sed
    Par jojolepabo dans le forum Linux
    Réponses: 6
    Dernier message: 27/10/2004, 10h34

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