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 :

utilisation regex \d


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 21
    Par défaut utilisation regex \d
    Bonjour je veux recuperer les valeurs 0.9 et 0.3 dans cette phrase
    Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK
    avec \d
    mais l'expression ((\d+)/(\d+)) / ne marche pas
    est ce que quelqu'un a une idee

  2. #2
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    une des solutions possibles:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = "Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK";
    $var =~ /(\d+\.\d+).*\/(\d+\.\d+)/;
    print $1." ".$2;
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $var = "Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK";
    $var =~ /\((\d+\.\d+)\w+\/(\d+\.\d+)\w+\)/;
    print $1." ".$2;

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 21
    Par défaut utilisation regex \d
    je me suis base sur ta reponse et j'ai fait
    output :Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK
    output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/

    mais ça ne marche toujours pas

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    Bonjour,
    Peux-tu coller ton code entier, l'expression régulière données par osnet est correcte chez moi aussi (parl 5.1) ?

    Sinon si tu as des lignes qui sont du type:
    Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK,
    il faut effectivement étendre ton code aux parenthèse de début et de fin dans ton expression initiale, et les échapper ave un \ aussi:
    [CODE]
    $var = "Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK";
    $var =~ /\((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)/;
    print $1." ".$2;

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 21
    Par défaut utilisation regex
    Bon en fait
    je ne peux pas utiliser $var ici il sagit d'un plugin
    voici mon code
    je veux juste recuperer les valeurs 0.9 et 0.3


    #!/usr/bin/perl

    # File: $Id: testentry.pl,v 1.4 2005/10/08 05:55:08 sauber Stab $
    # Author: (c) Soren Dossing, 2005
    # License: OSI Artistic License
    # http://www.opensource.org/licenses/artistic-license.php

    # Modify this script to test map entries before inserting into real
    # map file. Run the script and check if the output is as expected.

    use strict;
    no strict "subs";
    use Data:umper;
    my @s;

    # Insert servicesdescr, output and perfdata here as it appears in log file.
    #
    $_ = <<DATA;
    servicedescr:ping

    output :Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: ok
    perfdata:
    DATA

    eval {

    # Insert here a map entry to parse the nagios plugin data above.
    #
    output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/
    and push @s, [ traffic,

    [ in , GAUGE, $1 ],

    [ out, GAUGE, $2 ] ];
    };
    print Data:umper->Dump([\@s], [qw(*s)]);

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    Essaye juste de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # Insert here a map entry to parse the nagios plugin data above.
    #
    output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # Insert here a map entry to parse the nagios plugin data above.
    #
    output : /\((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)/
    ou juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)
    si les délimiteurs "/" servant à délimiter l'expression régulière ne sont pas demandés par ton plugin.

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

Discussions similaires

  1. Récupérer la valeur entre 2 balises en utilisant Regex
    Par new123 dans le forum Général Java
    Réponses: 5
    Dernier message: 08/04/2011, 10h38
  2. Réponses: 10
    Dernier message: 22/10/2010, 18h37
  3. [RegEx] utilisation regex pour pagination articles
    Par peaulisse dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2010, 21h37
  4. Utiliser Regex pour remplacement
    Par soveste dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 19/03/2007, 09h48
  5. [Notepad++] utiliser regex pour remplacer des caractères
    Par ilood dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 04/02/2007, 04h06

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