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 qui marche pas et pourtant [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut expression régulière qui marche pas et pourtant
    j'ai mon fichier 1.txt de ce genre
    PinAlimentation 5V 2A 4PinAlimentation 12V 7A 4 PinINFOS TECHNIQUES :* Alimentation secteur AC 5V / 12V pour disque dur externe ou pour boîtier externe pour disque dur avec un connecteur 4 pin* Tension d'Entrée : 100 V - 240 V AC, 50 Hz - 60 Hz , 1.5 A Max.* Tension de Sortie : 12V 2A ou 5V 1.5A* Modèle : GFP252-0512*
    j'aimerais recuperer les données apres le text INFOS TECHNIQUES
    j'ai fait ce code mais ca ne marche pas .Je suis sur de n'avoir pas fait d'erreur .Je ne comprends rien .si vous avez une idée .
    merci d'avance
    $contenu = file_get_contents("1.txt");
    $contenu=preg_replace('#^INFOS TECHNIQUES\b([a-zA-Z]+)#', '$1',$contenu);
    echo $contenu;

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Peux-tu utiliser un bloc de code plutot qu'une citation pour ton code ? ça permettra de mieux apprécier les retours à la ligne...

  3. #3
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Voici ce que j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#(.*)INFOS TECHNIQUES :(.+)#', '$2',$contenu);

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    Voici ce que j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#(.*)INFOS TECHNIQUES :(.+)#', '$2',$contenu);
    merci ca marche mais j'aimerais bien comprendre pourquoi ces codes ci-dessous ne marchent pas .Etonnant quand même .
    $contenu = preg_replace('#(\w+)INFOS TECHNIQUES :(\w+)#', '$2',$contenu);
    $contenu = preg_replace('#^INFOS TECHNIQUES :(.+)#', '$1',$contenu);

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Pourquoi utiliser preg_replace quand on cherche juste à extraire du texte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $content = file_get_contents("1.txt");
     
    if (preg_match('/INFOS TECHNIQUES : (.+)/', $content, $m))
        $infos = $m[1];
    else
        throw new RuntimeException("Aucune correspondance");

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    merci ca marche mais j'aimerais bien comprendre pourquoi ces codes ci-dessous ne marchent pas .Etonnant quand même .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#(\w+)INFOS TECHNIQUES :(\w+)#', '$2',$contenu);
    \w ne prend pas en compte les espaces => POUF !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#^INFOS TECHNIQUES :(.+)#', '$1',$contenu);
    ^ indique que la chaîne doit obligatoirement commencer par INFOS TECHNIQUES => PAF


  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par s.n.a.f.u Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#(\w+)INFOS TECHNIQUES :(\w+)#', '$2',$contenu);
    \w ne prend pas en compte les espaces => POUF !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = preg_replace('#^INFOS TECHNIQUES :(.+)#', '$1',$contenu);
    ^ indique que la chaîne doit obligatoirement commencer par INFOS TECHNIQUES => PAF

    apres 2 bonnes baffes , je crois avoir compris .merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2010, 15h43
  2. Expression régulière qui ne marche pas ?
    Par [ZiP] dans le forum Débuter
    Réponses: 4
    Dernier message: 29/06/2010, 14h42
  3. [Regex] Expression régulière qui ne passe pas avec \.
    Par jsd03 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 10/03/2009, 16h49
  4. [RegEx] Expression régulière qui ne fonctionne pas ?
    Par MaTHieU_ dans le forum Langage
    Réponses: 5
    Dernier message: 23/07/2007, 14h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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