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 :

regex en perl


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
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Par défaut regex en perl
    Bonjour,

    J'ai une chaine de caractères et je veux remplacer la dernière apparition de la sous chaine EURO par €?

    Exemple :
    Avant la regex :
    $Chaine='blabla blabla EURO blabla EURO blabla blabla blabla EURO blabla blabla';
    après la regex :
    $Chaine='blabla blabla EURO blabla EURO blabla blabla blabla € blabla blabla';

    j'ai essayé : $Chaine=~s/EURO$/€/; et ça marche pas

    Je vous remercie d'avance pour vos réponse.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Avec ta regex, ça ne marcherait que si EURO est tout à la fin.

    Je te suggère ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Chaine = reverse $Chaine ;
    $Chaine=~s/\bORUE\b/€/;
    $Chaine = reverse $Chaine ;
    si tu tiens à le faire en une seule ligne, tu peux essayer un negative lookahead :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Chaine =~ s/\bEURO\b.*?(?!\bEURO\b)/€/ ;
    mais je pense que le premier marchera plus sûrement et plus rapidement.

  3. #3
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    je pense que le plus simple est tout de meme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Chaine =~ s{(.*)EURO}{$1€}

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Citation Envoyé par CKLN00 Voir le message
    je pense que le plus simple est tout de meme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Chaine =~ s{(.*)EURO}{$1€}

    Magnifique !
    Juste pour chipoter, j'ajouterai les \b autour de EURO.

  5. #5
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Magnifique !
    Juste pour chipoter, j'ajouterai les \b autour de EURO.
    oui mais moi je suis pas un chipoteur

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Par défaut
    Citation Envoyé par CKLN00 Voir le message
    oui mais moi je suis pas un chipoteur
    Je vous remercie tous pour vos répense

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

Discussions similaires

  1. Regex tabulation perl
    Par simon884 dans le forum Langage
    Réponses: 5
    Dernier message: 24/06/2015, 14h49
  2. Réponses: 1
    Dernier message: 25/03/2010, 22h24
  3. regex : différence entre Perl et Python
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 08/01/2009, 20h53
  4. Perl & Regex
    Par Fluxy dans le forum Langage
    Réponses: 5
    Dernier message: 25/02/2007, 12h46
  5. [Regex perl] Matcher un gros fichier
    Par osoumayaj dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 18/01/2007, 09h37

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