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 :

[per][regExp]Comment recuperer les parametres ds l'ordre?


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 12
    Points : 12
    Points
    12
    Par défaut [per][regExp]Comment recuperer les parametres ds l'ordre?
    Bonsoir a tous
    j'ai une ligne de code Java, par exemple la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     _objFsLog.traza (_strEntorno, strOrigen, iNivel, "message a montrer" + msg)
    je veux recuperer tt les arguments qui sont entre parentheses et separrés par vergule.

    g utilisé l'expression reguliere suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     m/^\s*(_objFsLog.traza\s*\((.+),(.+),(.+),(.+)\)/)
    Et je recupere les argument avec $1,$2,$3..
    mais les probelemes commencent kan ds le dernier argument y a une vergule. Parce que je pense que perl recupère les valeurs a l'enver. c a dire, il recupere $4,$3,$2 puis $1.
    Et s'il y a une vergule ds le message, il prend une partie du message com valeur, et l'autre patie comme une autre valeur.

    Je ne sais pas comment affronter ça. (g avec perl 2 semaines seulement ).

    Merci d'avance.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    c'est pas tres clair, dans ton exemple on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine ="_objFsLog.traza (_strEntorno, strOrigen, iNivel, "message a montrer" + msg) ";
    que veux tu recuperer?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    _strEntorno
    strOrigen
    iNivel
    c'est ça ou j'ai oublié quelque chose?

  3. #3
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Ce n'est pas tant qu'il prenne les valeurs à l'envers : c'est simplement que les quantificateurs sont gloutons par défaut en Perl (ils "mangent" le plus de caractère qu'ils peuvent, puis les relachent un à un jusqu'à obtenir un match).
    Dans ton cas le plus simple est donc probablement de rendre les quantificateurs paresseux (ils mangent le moins possible) en rajoutant un '?' après le quantificateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m/^\s*(_objFsLog.traza\s*\((.+?),(.+?),(.+?),(.+?)\)/)
    Maintenant tu auras un autre problème s'il y a une virgule autre part que dans le dernier paramètre, ou s'il peut y avoir une parenthèse dans ce dernier. Mais comme tu ne nous as pas donné assez de renseignement pour traiter ces cas là, je ne peux pas t'aider.

    --
    Jedaï

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci Jedai, merci bokou.
    ça fonctionne, et tu m'a sauvé le job

    A toi aussi Djibril.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/02/2008, 10h51
  2. Plus de partitions, comment récupérer les fichiers
    Par Michaël dans le forum Administration système
    Réponses: 6
    Dernier message: 01/06/2005, 21h41
  3. comment recuperer les messages
    Par devalender dans le forum Débuter
    Réponses: 2
    Dernier message: 17/06/2004, 20h30
  4. Comment recuperer les ip de la commande ipcinfig ?
    Par Walm dans le forum C++Builder
    Réponses: 5
    Dernier message: 04/05/2004, 17h04

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