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 Perl Discussion :

récupérer plusieurs parties d'une ligne avec split?


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 68
    Points : 46
    Points
    46
    Par défaut récupérer plusieurs parties d'une ligne avec split?
    Bonjour,

    J'ai une ligne d'un fichier texte qui ressemble à ceci:
    <h2>dossiers</h2><ul><li><a href="/dossier/do0045569/">text 1</a></li><li><a href="/dossier/do0103598/">text 2</a></li><li><a href="/dossier/do0103421/">text 3</a></li></ul><h2>Findossiers

    J'ai écris la ligne de code suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($ligne2 =~ m#dossiers(.*)Findossiers#)
    {
    @extract = split(m#">[^\>]*</a#, $1);
    }
    Malheureusement @extract contient justement toutes les données qui ne m'intéressent pas, j'aurais voulu récupérer toutes les données comprises entre "> et </a, ces symboles me permettent d'indentifier à coup sur les données recherchées.

    qui sait comment récupérer cela? est-ce que split stocke quelquechose et comment le récupérer?

    Merci à tous

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Pour une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @liste = ($string =~ m'>([^>]*?)</a'g);
    //g permet une recheche globale et récupère donc une liste de motifs trouvés.
    Afin que le dossier soit considéré comme une seule ligne, tu peux ajouter //msx
    http://perl.developpez.com/faq/?page...B72#sectionB74
    -- Jasmine --

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Si le fichier est trop gros il vaut peut-être mieux le lire ligne par ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my $file = 'chemin';
    open(FILE, $file) or die $.;
     
    my @list;
    while (<FILE>){
    	push (@list ,  m'>([^>]*?)</a'g);
    }
     
    close(FILE);
    -- Jasmine --

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 68
    Points : 46
    Points
    46
    Par défaut
    Merci ça marche très bien!

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

Discussions similaires

  1. découpage d'une ligne avec split
    Par FRANCO0211 dans le forum Langage
    Réponses: 7
    Dernier message: 30/06/2014, 01h15
  2. Réponses: 5
    Dernier message: 27/08/2010, 07h29
  3. Réponses: 3
    Dernier message: 10/06/2010, 11h15
  4. Récupérer une partie d'une ligne d'un fichier texte
    Par exqo77 dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 28/01/2010, 10h13
  5. Réponses: 1
    Dernier message: 05/05/2009, 10h40

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