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 :

pb avec expression regulière


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 48
    Points : 20
    Points
    20
    Par défaut pb avec expression regulière
    Bonjour,

    J'ai un problème, je dois splitter une chaine de caractère tel que mot/NN/mot mot/JJ/mot ou mot/NN/mot mot/IN/mot mot/NN/mot d'un fichier qui se presente comme suit:

    syAsp/NN/syAsp mn/IN/mn dwlyp/NN/dwlyp AlkAbws/NN/AlkAbws ytwASl/JJ/ytwASl

    après le split le resultat devrait être:
    syAsp/NN/syAsp mn/IN/mn dwlyp/NN/dwlyp dans un fichier
    AlkAbws/NN/AlkAbws ytwASl/JJ/ytwASl dans un autre fichier

    J'ai essayé des trucs mais ça marche pas
    merci de m'aider

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 574
    Points : 2 017
    Points
    2 017
    Par défaut
    J'ai trouvé !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    use strict;
     
    $_ = "syAsp/NN/syAsp mn/IN/mn dwlyp/NN/dwlyp AlkAbws/NN/AlkAbws ytwASl/JJ/ytwASl";
     
     
    # RegExp pour rechercher selon le modèle chaineNNchaine chaineINchaine chaineNNchaine
    if (/(\w+\/NN\/\w+) (\w+\/IN\/\w+) (\w+\/NN\/\w+) */) {
        print "$1 $2 $3\n";
    } else {
        print "no ok\n";
    }

  3. #3
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Merci, Arioch, car c'est le premier pas qui coûte ...

    Sur ta solution, je proposerai l'évolution suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $chaine = "syAsp/NN/syAsp mn/IN/mn dwlyp/NN/dwlyp AlkAbws/NN/AlkAbws ytwASl/JJ/ytwASl"; 
     
    my @liste = ($chaine =~ m%(\w+/NN/\w+ (?:(?:\w+/IN/\w+) (?:\w+/NN/\w+)|(?:\w+/JJ/\w+)))%g);
     
    my @in = grep { /IN/ } @liste;
    my @jj = grep { /JJ/ } @liste;
    Voila, voila, dans l'idée ... à adapter ...
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

Discussions similaires

  1. Comparaison et recherche avec Expression regulière
    Par oliviernouhi dans le forum Langage
    Réponses: 15
    Dernier message: 30/11/2010, 17h17
  2. Java avec expression regulière
    Par bennkabazz dans le forum Général Java
    Réponses: 2
    Dernier message: 11/03/2009, 10h38
  3. Verification de textBox avec expression regulière
    Par GrosBibi dans le forum Windows Forms
    Réponses: 7
    Dernier message: 29/05/2008, 14h57
  4. getMethods avec expression regulière
    Par al3alwa dans le forum Langage
    Réponses: 3
    Dernier message: 03/01/2008, 17h19
  5. [RegEx] problème avec expression regulière
    Par teen6517 dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2007, 11h39

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