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 :

suppression fin chaîne de caractère


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut suppression fin chaîne de caractère
    Bonjour,

    Je suis en train de m'arracher les cheveux sur quelque chose que j'imagine simple, mais vu mon niveau en perl !!!!

    Voila j'ai une variable que contient une chaîne de caractère du style $var = aaaaa_bbbbbb .
    Je veux supprimer tout ce qui est à partir du _ , c'est à dire ne garder que aaaaa .
    Je précise que le nombre de a et de b peut varier.

    Merci pour votre aide !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Comme toujours en perl, TIMTOWTDI. En voici une avec une expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = "aaaaa_bbbbbb";
    $var =~ s/_.*//;
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    my $chaine = 'aaaaa_bbbbbb';
    $chaine =~ s{_.+$}{_};
    print $chaine;

  4. #4
    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
    Grillé par philou (dans ton code, le souligné saute également) .

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci à vous, je savais que c'était simple !!!!
    J'ai cherché, lu les faqs mais je n'y arrivais pas


  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    C'est ce qui était demandé je crois
    Citation Envoyé par webol Voir le message
    c'est à dire ne garder que aaaaa .
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #7
    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

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Oui c'est tout a fait ce que je demandais.

    Une autre, si je peux me permettre ?

    comment faire pour garder la deuxième partie d'une chaîne de caractère si je n'est pas le "_" mais un espace ?

    C'est a dire comment faire si $var="aaaa bbbb" pour garder $var="bbbb" ?

    Merci.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    my $chaine = 'aaaaa bbbbbb';
    my ($out) = $chaine =~ m/\s(.*)$/;
    print "$out\n";
    mais y'a surement plus simple et plus sûr.

  10. #10
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci mamax29

    faut que j'arrive à comprendre, si $var="aaa bbb ccc" et que je veux garder que $var="bbb" comment je fais ?


  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $chaine = 'aaaaa bbbbbb ccccc';
    my ($out) = $chaine =~ m/\s(.*?)\s/;
    print "$out\n";
    Explication:

    L'expression de base:
    Recherche une chaine de caractère qui commence par un espace ( symboli'se par "\s" ) qui contient un nombre indéfini de n'importe quel caractère ( symbolisé par ".*?" ) et qui se termine par un espace ( "\s" )

    l'expression de base appliquée à une chaine de caractère s’écrit comme ci-dessous:
    mais dans ce cas, le résultat de cette commande ne peut être que "vrai", expression trouvé, ou "faux" expression pas trouvée.

    dans ton cas, tu veux extraire la chaine trouvée entre les deux espaces:
    on applique donc la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($out) = $chaine =~ m/\s(.*?)\s/;
    Dans la commande, m/\s(.*?)\s/; les parenthèses indique qu'il faut extraire ce qu'il y a dedans.
    Elle est appliqué à la chaine de caractère "$chaine"
    et la sous chaine extraite est stocké dans la variable "$out"
    !! Attention !! Dans la commande, les parenthèses autour de la variable $out sont obligatoire.

  12. #12
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Un grand merci à toi Mamax29, merci pour les explications.
    Je relis ça doucement et je vais travailler dessus.


  13. #13
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Pour que je comprenne bien, si je voulais garder $var="ccc" comment ferais tu ?


  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($out) = $chaine =~ m/\s(.*?)$/;
    "$"corresponds à la fin de la chaine de caractère.

    regarde les tuto perl pour plus d'info:
    http://perl.developpez.com/faq/perl/?page=sectionB7

  15. #15
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Encore merci à toi.

    Je vais regarder tout ça.


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

Discussions similaires

  1. suppression d'une chaîne de caractères
    Par new_wave dans le forum VB 6 et antérieur
    Réponses: 27
    Dernier message: 12/09/2006, 12h35
  2. Réponses: 17
    Dernier message: 08/06/2006, 09h34
  3. [Tableaux] Chaîne de caractères et suppression ...
    Par mulbek dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 15h18
  4. Suppression de chaînes de caractères
    Par Furius dans le forum Windows
    Réponses: 24
    Dernier message: 03/11/2005, 15h30
  5. Réponses: 13
    Dernier message: 17/10/2005, 15h32

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