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 :

[PERL] Chercher chaine de caractère


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 26
    Par défaut [PERL] Chercher chaine de caractère
    Bonjour,

    J'ai besoin d'aide.
    J'ai placé un fichier dans un tableau pour l'analyser.
    L'une des lignes du fichier est de la forme :
    xx %bbbb = (

    voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for ( 0 .. $#tableauFichier) { 
     
    $IdxLigneDuFichier = $_ ; 
    for ( 0 .. $#tableauFichier) { 
    if ( $tableauFichier[$IdxLigneDuFichier] =~ /[\s+]xx \%bbbb[\s+]=[\s+]\([\s+]/ ) { 
    print "ca marche\n"; 
    exit; 
    } 
    else { print "ca ne marche pas !!!! \n"; exit;} 
     
    } 
    }
    Probleme: ca ne marche pas.
    Quelqu'un a une idée ? Merci d'avance

  2. #2
    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
    Que cherches-tu précisément à faire? Pourquoi parcoures-tu deux fois le même tableau?

    L'une des lignes du fichier est de la forme :
    xx %bbbb = (
    Quel motif doit tester ton expression régulière? 2 fois ma même lettre, un espace, un pourcent puis 4 fois la même lettre, un espace, un égal, un espace et une parenthèse ouvrante? Quelle valeur veux-tu récupérer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $ligne = 'xx %bbbb = (';
    if ($ligne =~ /xx \%bbbb = \(/){
        print "match\n";
    }
    Pour plusieurs espaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne =~ /xx\s+\%bbbb\s+=\s+\(/
    Les crochets carrés servent à utiliser des alternatives ou à écrire la négation. Ils ne servent donc qu'à la déco dans ton expression.

    Si /[\s+]xx \%bbbb[\s+]=[\s+]\([\s+]/ ne fonctionne pas, c'est probablement parce que tu exiges que la ligne commence par une espace. Tu peux remplacer les + par des *

Discussions similaires

  1. [Batch] Chercher chaines de caractères dans plusieurs fichiers
    Par stefanelle dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 28/01/2011, 11h21
  2. [XL-2007] Chercher chaine de caractère
    Par Kermichou dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 30/09/2010, 15h29
  3. Réponses: 1
    Dernier message: 24/01/2008, 17h30
  4. [Perl] Problème de remplacement de chaine de caractères
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 17/10/2006, 09h28
  5. [PERL]Nombre d'un caractère présent dans une chaine
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 13h58

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