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 :

probleme de recherche de motifs


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut probleme de recherche de motifs
    Bonjour tout le monde,
    je suis en train de traiter des fichiers issus d'un output d'un autre script que j'ai ecris. J'essaye de construire des motifs pour individualiser les différents éléments contenu dans ce fichier. Une ligne y correspond à un ensemble.
    Voici un exemple de ligne :
    "------NMA0003 NMB0256 CDS_recouvrant NMC0250 CDS_recouvrant"
    les espaces entre les noms sont des tab.

    Je suis entrain d'écrire le script pour qu'il me mette dans un tableau la reference (ex:NMB0256) qui se trouve devant l'expression CDS recouvrant. Le script marche pour une occurence mais pas pour les autres : il met NMB0256 mais pas NMC0250.
    J'ai essayé de mettre l'option /g dans mon motif mais rien n'y fait.
    Alors je vous appelle au secours...pour que mon motif marche pour toutes les occurence d'une ligne.
    merci de votre aide
    Franck
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Quelque chose comme ça :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #! C:/Perl/bin/perl.exe
     
    ###################################################################################################################
    ##
    ##	----------Ce script permet de compiler les resultats des zones identifiées comme possibles pour realiser
    ##		un design. Il prend en entrée le fichier des zones découvertes et les compile pour donner les zones globales
    ##
    ##
    ###################################################################################################################
    ##____________Ce script necessite les fichiers suivants :
    ##	- Zones_CDS_ABC_multiples.txt
    ##	- Taille_CDS_genomeABC.txt
    ##
    ###################################################################################################################
     
    use strict;
    use warnings;
     
    my $file_zones          = "zone_test.txt";
    my @tab_gene_unique     = ();
    my @tab_gene_recouvrant = ();
     
    open my ($zones), '<', $file_zones
      or die "Can't read $file_zones : $!\n";
    while ( my $ligne_zones = <$zones> ) {
        chomp $ligne_zones;
        if ( $ligne_zones =~ /------(.*)	=>Gene_unique/ ) {
            push( @tab_gene_unique, $1 );
        }
     
        if ( $ligne_zones =~ /------(\w+)/ ) {
            push( @tab_gene_recouvrant, "ref" . $1 );
     
            if ( my @temp_list = ($ligne_zones =~ /(\w+)\tCDS_recouvrant/g) ) {
                push( @tab_gene_recouvrant, @temp_list );
            }
            else {
                push( @tab_gene_recouvrant, "no" );
            }
        }
     
    }
    close($zones);
    print "#@tab_gene_unique#\n";
    print "@tab_gene_recouvrant\n";
    C'est une question de contexte : m/.../g ne matche qu'une seule fois en contexte scalaire, mais plusieurs fois en contexte de liste comme ici.
    Le comportement de m/.../g en contexte scalaire est très utile pour parser un texte "par petits bouts" utilisé en conjonction avec \G, l'ancre qui est placé à la fin de la dernière m/.../g réussie.

    --
    Jedaï

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut merci
    C'est cool j'avais pas completement integrer les contextes...
    Bon et bien encore merci Mr Jedai
    le direct c'est l'avenir
    Probleme resolu et je continu à cherche d'autres solutions pour mes motifs futurs
    Franck

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

Discussions similaires

  1. [SGBD] problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/10/2005, 23h06
  2. probleme requete recherche approximative
    Par Immo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/08/2005, 16h18
  3. [SQL] probleme sur recherche
    Par Tib781 dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2005, 12h31
  4. Probleme de recherche par listbox
    Par haigwepa dans le forum IHM
    Réponses: 6
    Dernier message: 12/10/2004, 19h57
  5. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 15h10

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