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 pour ne garder que les chiffres et les ;


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 regex pour ne garder que les chiffres et les ;
    Bonjour,

    Je m'arrache de nouveau les cheveux, même si je n'en ai plus beaucoup, sur les regex !

    Si quelqu'un peux me venir en aide.

    Voila j'ai une chaine de caractère qui ressemble à ça :
    $val="Msgs=667964;Waits=662578;Misses=35077790;Max;HP;Msg=;60;Max;NP;Msg=;57;Current;Depth=;0;Max;Depth=;90;Current;High;Depth=;0;Current;Norm;Depth=;0;Current;Threads=;58;Max;Threads=;58 Current=419;Max=713;Limit=3072"

    La dedans je ne veux garder que les chiffres et les points virgule.

    Quand je fait $val =~ s/[^0-9]//g; je garde ne bien que le chiffres mais comment faire pour garder aussi les ; ?

    Par avance merci.

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    quelle valeur finale tu veux ?

    juste une chaine de caractère contenant les nombres séparés par des points-virgules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    667964;662578;35077790;;;;60;;;;57;;;0;;;90;;;;0;;;;0;;;58;;;58419;713;3072
    ? ou la liste de tous les nombres dans ta chaine ?

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 84
    Points : 197
    Points
    197
    Par défaut
    je pense que ça réponds à ta demande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $val="Msgs=667964;Waits=662578;Misses=35077790;Max;HP;Msg=;60;Max;NP;Msg=;57;Current;Depth=;0;Max;Depth=;90;Current;High;Depth=;0;Current;Norm;Depth=;0;Current;Threads=;58;Max;Threads=;58 Current=419;Max=713;Limit=3072";
     
    print "val :: $val\n";
     
    $val =~ s/[^0-9;]//g;
    print "val :: $val\n";

  4. #4
    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 2 pour votre aide.

    Je veux obetnir ça : 64;696723;691139;36367579;60;57;0;90;0;0;58;58;378;713;3072;0

  5. #5
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    tu peux faire ça pour obtenir la liste des nombres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @list = ($val =~ m/([0-9]+)/g);
    puis utiliser join pour avoir ta chaine finale (si tu en as besoin)
    ou reprendre la formule donnée précédemment puis reparser la valeur de retour

    bon courage !

  6. #6
    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
    J'ai fait comme ça et ça fonctionne

    Un grand merci à vous pour votre aide et rapidité.

    Webol.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2013, 12h19
  2. tri pour ne garder que le maximum
    Par jerems113 dans le forum Cognos
    Réponses: 1
    Dernier message: 12/08/2010, 14h08
  3. [RegEx] Garder les chiffres et les points-virgules
    Par olibara dans le forum Langage
    Réponses: 3
    Dernier message: 12/05/2010, 22h34
  4. [RegEx] Regex autorisant les chiffres et les virgules (ou point)
    Par inmotion dans le forum Langage
    Réponses: 6
    Dernier message: 01/02/2009, 17h57
  5. regex pour comparer des dates, des chiffres, des nombres
    Par lex13 dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 06/07/2007, 11h51

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