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 :

[PERL/regexp] récupérer les 4 premiers chiffres d'une chaine


Sujet :

Langage Perl

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut [PERL/regexp] récupérer les 4 premiers chiffres d'une chaine
    Bonjour à tous,

    Je sais que c'est possible en perl mais je ne sais pas comment faire.
    Je voudrais récupérer les 4 premiers chiffres d'une chaîne de caractères.

    Ex: pour chaque chaine ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine1="ordfre1234sk521sdksj";
    $chaine2="sd1234ksjkd596";
    je voudrais récupérer

    Voilà !!

    Merci beaucoup pour vos suggestions.

    Bonne aprem.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    que nous suggeres tu en premier?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Ma première suggestion, (mais je sais qu'elle n'est pas la bonne) serait de faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $chaine="ddfkjdf1234dfdf5214";
    $chaine=~s/[^0-9]//g;
    $res=substr($chaine,0,4);
     
    print "$res";

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    voici un code à l'arrache, faudra verifier la syntaxe car j'ai pas perl ou je suis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    my $recup;
    my @tab = split ('', $chaine);
    foreach my $lettre (@tab) {
     if ($lettre =~ /\d/) { my $recup .= $lettre;}
    last if (scalar($recup) eq 4);
    }
    print $recup;
    je suis sur qu'on peut faire plus court
    voilà

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Merci pour ta réponse Djibril !

    Au regard des articles que tu as écrit dans la faq perl sur les regexp, j'ai l'impression qu'il est possible de récupérer les 4 premiers chiffres en une ligne de code...

    Crois tu que ce soit possible ??

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    oui c'est possible, faut juste plus reflechir, mais j'ai pas les yeux en face des trous
    tout depends aussi de ta chaine de depart
    Tu peux t'exercer à trouver la bonne regex
    courage

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    ok, merci !!
    Je vais m'y pencher de plus prêt !!!

    Bonne après-midi !!

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chaine =~ /(\d{4})/;
    $ma_recup = $1;
    Voilou

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Ahhh c'est super PERL !!!!!!!!!!!

    Merci beaucoup pour ta clairvoyance !!!

    Et grand merci pour les cours et tutoriels Perl c'est très utile : http://perl.developpez.com/cours/

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/10/2011, 15h24
  2. Réponses: 1
    Dernier message: 09/09/2011, 20h44
  3. [Débutant] Récupérer les 2 premiers caractères d'une chaine de caractères
    Par titus2709 dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/06/2011, 11h52
  4. Récupérer les n premiers caractères d'une chaine.
    Par derfatypik dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2008, 11h45
  5. Réponses: 5
    Dernier message: 24/01/2006, 14h25

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