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 :

preg_match_all() [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut preg_match_all()
    Je souhaite récupérer ce qui se trouve après "STRING". J'ai alors écrit ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $ask='SMI::enter.1.73.0 = STRING: "salut.a.tous"';
        preg_match_all ("(^STRING)","$ask", $io);
        echo "
    	<pre>
    	"$io[0][0]"
    	</pre>
        ";
    La variable $io contient un tableau "array", mais je n'arrive pas à retrouver ma chaine. $io[0][0] est vide.

    Quelqu'un a une idée ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Je doute de la pertinence d'une regexp pour un traitement aussi simple.
    Utilise plutôt strpos( ) + substr( )

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Ok, j'ai compris le principe mais la longueur de ma chaine est variable. Je peux fixer le début de la chaine avec strpos mais pour la longueur ...?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par winnie82
    Je ne peu pas utiliser substr() puisque le début de la chaine ainsi que sa longueur son variable
    D'où l'intérêt de strpos( ) pour connaître la position du 1er caractère de la chaîne à extraire.

    Tout ce que je sais, c'est qu'elle est situé entre crochet.
    Je ne vois pas de crochet dans ton exemple.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Excuse je voulais dire entre double quote ! Oups

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Ok, j'ai compris le principe mais la longueur de ma chaine est variable. Je peux fixer le début de la chaine avec strpos mais pour la longueur ...?

  7. #7
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Bon bah j'attends que tu aies fait le point sur ce que tu veux faire pour te répondre

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    PS : Merci de ne pas éditer tes msgs et d'en changer complètement le contenu => C'est assez gênant pour suivre une discussion convenablement.

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 140
    Par défaut
    Finallement, j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        $ask0='SMI::1.73.0 = STRING: "bonjour"';
        $findme='"';
        $pos = strpos($ask0, $findme);
        $result = substr($ask0, $pos);    
        $io = eregi_replace ('"',"", $result);
        echo $io;
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $result =  "bonjour"
    $io = bonjour
    Je trouve cela un peu long, mais ca a le mérite de fonctionner !

  10. #10
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Plutôt que d'utiliser eregi_replace, utilise plutôt str_replace qui est plus rapide

  11. #11
    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
    Par défaut
    Salut

    En effet, utilise plutôt str_replace() dans ce cas.
    De manière générale, tu peux oublier les fonctions ereg au profit des fonctions str ou preg.

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

Discussions similaires

  1. [RegEx] Expression régulière avec preg_match_all
    Par tit_oune dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2006, 23h28
  2. [RegEx] [RegExp] preg_match_all
    Par TNorth dans le forum Langage
    Réponses: 6
    Dernier message: 05/02/2006, 22h21
  3. [RegEx] preg_match_all : messages d'erreur récurents
    Par nabab dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2005, 10h14
  4. [RegEx] preg_match_all : créer un masque :/
    Par Huntress dans le forum Langage
    Réponses: 2
    Dernier message: 22/01/2005, 14h58
  5. [RegEx] preg_match_all et retour chariot ??? comment faire ?
    Par zax-tfh dans le forum Langage
    Réponses: 6
    Dernier message: 26/09/2004, 17h21

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