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 :

regexp dans un join


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut regexp dans un join
    je voudrais n'afficher que les éléments de la liste contenant une majuscule sans utiliser un foreach suivi d'un if.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print (join "\n", @{[@Lonly =~ /[A-Z]/g]};
    ... mais ça ne fonctionne pas ... comment faire?


    Merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Par défaut
    grep ?

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    oui ça doit être grep


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print (join "\n", @{[grep {/[A-Z]/} @Lonly]} );
    ... pour récupérer une liste, il me faut un contexte de liste, mais ça ne va pas. Je vais explorer cette piste, merci.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print join "\n", grep /[A-Z]/, @Lonly;
    tout simplement.

    J'aurais même tendance à dire que ce que tu veux, c'est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use 5.10.0;
    say foreach grep /A-Z/, @Lonly;
    (à savoir que la dernière ligne aura aussi un \n).

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Merci ... c'est en effet plus simple que ce que je ne pensais.

    Je m'y perds un peu. Tu m'avais aidé lors d'un précédent problème en écrivant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $s = join "", @{[substr($sequence, 0, $X-1) =~ /([ATCG])/g]}[-5..-1], @{[substr($sequence, $X-1) =~ /([ATCG])/g]}[0 .. 5];
    L’énoncé étant :
    A partir du Xième caractère de $sequence X = 30
    Récupérer N nucléotides de part et d'autre N = 5
    Tu passes par un substring pour récupérer les caractères de part et d'autre. Sur cette liste, on utilise une expression régulière afin de ne récupérer que les ATCG.

    En quoi ce problème est-il différent? Pourquoi cela ne fonctionne-t-il pas? C'est pourtant bien une regexp sur une liste ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print (join "\n", @{[@Lonly =~ /[A-Z]/g]};

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Parcequ'un substring (obtenu avec substr) est un scalaire, pas une table de scalaire, tout simplement.
    C'est comme si tu avais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $start = substr($sequence, 0, $X-1);
    my $end = substr($sequence, $X-1);
    my $s = join "", @{[$start =~ /([ATCG])/g]}[-5..-1], @{[$end =~ /([ATCG])/g]}[0 .. 5];

Discussions similaires

  1. [regexp] dans une requete sql cers access
    Par Ludosjob dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/01/2007, 23h47
  2. [performance] condition dans le join ou le where ?
    Par Satch dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/09/2006, 23h04
  3. Mettre une priorité dans un JOIN
    Par ez3kiel dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/07/2006, 12h41
  4. Erreur "Unknown column" dans un JOIN sous MySQL 5.0
    Par bibiloute dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/04/2006, 09h16
  5. [C#][xml][regexp] Recherche d'une regexp dans un fichier xml
    Par LeJocker dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2005, 12h29

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