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

Modules Perl Discussion :

extraction nombre from chaine caractere


Sujet :

Modules Perl

  1. #1
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut extraction nombre from chaine caractere
    Salut,

    Je dois récupérer un nombre dans un nom de fichier que je passe en paramètre d'un script perl. J'ai essayé de trafiquer un peu avec des expressions régulìeres mais je n'y arrive pas.

    Une fonction comme substr n'est pas adaptée car le nombre peu être composé de 1, 2 ou 3 chiffres. Le nombre se trouve au début du nom du fichier.

    Le format du nom de fichier et le nombre que je dois récupérer sont ainsi:

    1_900_123456.in --> 1
    01_900_123456.out --> 01
    001_900_123456.log --> 001
    Pourriez-vous m'aider pour trouver l¡expression qui me permette de faire ca.

    Merci par avance

    Mat

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    si on dit "un à trois chiffres en début de nom, suivis d'un underscore", ça donne par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $nombre ;
    if ($nomfichier =~ m/^(\d{1,3})_/) {
      $nombre = $1 ;
    }
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    ou sinon il te suffit de considerer ta chaine comme un nombre, et perl prendra tout ce qui ressemble à un nombre au debuit de ta chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $str = "2_950fdv";
    my $i = 0+$str;
    print $i;
     
    > 2
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Joli !

    PS : même si on sort du cadre de la question, est-ce que Perl ne risquerait pas d'être trop malin avec des noms comme "25.3 trucmuche" ou "-55bidule" ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #5
    Membre du Club Avatar de Matmal11
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    merci, ca fonctionne a la perfection.
    Je vais choisir la 2nde solution, comme mon nom de fichier est normalisé cela fonctionne à la perfection.

    @++

    Mat

Discussions similaires

  1. Convertir un nomùbre en chaine de caractere
    Par Sam 069 dans le forum Access
    Réponses: 1
    Dernier message: 18/06/2007, 14h24
  2. [SQL Server 2000] Extraction dans une chaine de caracteres
    Par KOFJCH dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2006, 09h28
  3. convertir un nombre en chaîne de caractères
    Par Calbane dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/04/2006, 20h12
  4. convertir un nombre en chaine de caractere
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 11h24
  5. extraction d'une chaine de caractere ...
    Par nicolasghaz dans le forum VBScript
    Réponses: 7
    Dernier message: 31/10/2005, 18h53

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