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 :

Remplacer des motifs dans une chaîne


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut Remplacer des motifs dans une chaîne
    Bonjour,

    Ma chaîne
    (champs1 (champs6 donnee_o donnee_f) [(champs2 [] (champs3 _YOJNJeyyyyyyB (champs4 donnee_x)) (debut 144825 25345) (fin 244102 40647)), (champs2 [] (champs3 _FuGNJeyyyyyyB (champs4 donnee_z)) (debut 796443 190570) (fin 145247 42663))] [] []).
    Dans la chaîne ci-dessous, je voudrais remplacer les valeurs entières, respectivement par:
    $moyLargRectNom, $moyHautRectNom, $moyLargRectNom, $moyHautRectNom, $moyLargRectMat, $moyHautRectMat, $moyLargRectMat, $moyHautRectMat
    Mon expression régulière:
    $ligne =~ s/(.*debut)\s\d+\s\d+(.*fin)\s\d+\s\d+(.*debut)\s\d+\s\d+(.*fin)\s\d+\s\d+(.*)/$1$moyLargRectNom$2$moyHautRectNom$3$moyLargRectNom$4$moyHautRectNom$5$moyLargRectMat$6$moyHautRectMat$7$moyLargRectMat$8$moyHautRectMat$9/;
    Aucune valeur n'est remplacée dans la chaîne.

  2. #2
    Membre confirmé
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Ça fait mal à la tête, ton truc. Essaie d'utiliser le modificateur /x pour ta regex.
    Je ne comprends pas bien ce que tu cherches à faire, mais une chose dont je suis certain, c'est que ton code est bizarre. Dans ta chaîne de substitution, tu utilises des variables qui ne sont définies nulle part : $6, $7, $8 et $9. Ta regex n'a que cinq paires de parenthèses capturantes.
    There's nothing like $HOME!

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2007, 17h12
  2. [Free Pascal] Suppression des espaces dans une chaîne
    Par Maxence45 dans le forum Free Pascal
    Réponses: 43
    Dernier message: 18/03/2007, 11h29
  3. Réponses: 4
    Dernier message: 29/08/2006, 17h44
  4. Remplacer les accents dans une chaîne
    Par mathieumg dans le forum C
    Réponses: 9
    Dernier message: 23/07/2006, 15h39
  5. Comment remplacer plusieurs caractères dans une chaîne?
    Par Antigonos Ier Gonatas dans le forum Général Python
    Réponses: 5
    Dernier message: 16/06/2006, 16h04

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