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 :

[langage] Substitution précise dans une chaine


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [langage] Substitution précise dans une chaine
    Voila dans une suite de caracteres de tout types, je veux enlever uniquement les " ! " qui sont situés entre deux majuscules...Comment faire ?

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lign =~ s/([A-Z]{1})\!([A-Z]{1})//g;
    mais ça me supprime aussi les deux majuscules bordantes...

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lign =~ s/([A-Z]{1})\!([A-Z]{1})/$1$3/g;
    me donne des erreurs
    Use of uninitialized value in concatenation (.) or string at
    Quelqu'un pour un coup de main rapide ?

  2. #2
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    tu y étais presque avec la 2ème solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine =~ s/([A-Z])\!([A-Z])/$1$2/g;
    (le {1} n'est pas nécessaire...)
    je ne comprends pas trop où tu es allé chercher ton $3

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci !

    Pour le $3 j'avais cru lire que $1 représentait le premier motif recherché, $2 le deuxième, etc....

    Or là mon deuxième motif étant "!" et vu que je ne voulais pas le garder, je pensais qu'il fallait garder le $3

    pourquoi le $2 représente t'il le troisième motif dans ce cas ? J'aime comprendre quand je fais des erreurs

  4. #4
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    $1 représente le 1er groupe ENTRE PARENTHESES, $2, le 2ème, etc...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok, merci hebus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2012, 09h57
  2. Réponses: 16
    Dernier message: 17/06/2009, 12h21
  3. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  4. [langage] compter des caracteres dans une chaine
    Par louisis dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 22h39

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