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 :

Expression régulière pour récupérer le nom d'un fichier


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 44
    Points : 25
    Points
    25
    Par défaut Expression régulière pour récupérer le nom d'un fichier
    Bonjour à tous !

    Je ne suis pas très forte dans les expressions régulières !

    Voilà à partir d'un chemin de fichier, je souhaiterais récupérer uniquement le nom du fichier sans son extension.

    Par exemple pour le chemin : C:\Documents and Settings\Propriétaire\Mes documents\Corpus1\501.txt

    Je voudrais récupérer uniquement le nom du fichier, soit '501'.

    Est-ce que quelqu'un peut m'aider ? ;-)

    Calimero2611

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: Expression régulière pour récupérer le nom d'un fichier
    Citation Envoyé par calimero2611
    Est-ce que quelqu'un peut m'aider ? ;-)
    Oui, le module File::Basename par exemple
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 44
    Points : 25
    Points
    25
    Par défaut
    Merci mais je voudrais utiliser une expression régulière plutôt qu'un module...Car les module je ne sais pas trop m'en servir !

  4. #4
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    ou avec une petite expression régulière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #!/usr/bin/perl -w
     
    use strict;
    use Carp;
     
    my $filename = "C:/Documents and Settings/Propriétaire/Mes documents/Corpus1/501.txt";
    my $espace_travail = "/Users/home/Documents/TEST/R1/toto.txt";
    $filename =~ s/.*[\/\\](.*)\.txt/$1/;
    $espace_travail =~ s/.*[\/\\](.*)\.txt/$1/;
    print "$filename\n";
    print "$espace_travail\n";
    A toi de voir ensuite avec le type de fichier que tu veux récupérer, et donc des extensions de fichiers à mettre dans ton expression!
    Teste ce code, et inspire-t-en!
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 44
    Points : 25
    Points
    25
    Par défaut
    C'est terrible !!!!! ça fonctionne !!!

    MERCI BEAUCOUP Stoyak !

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par calimero2611
    Merci mais je voudrais utiliser une expression régulière plutôt qu'un module...Car les module je ne sais pas trop m'en servir !
    Il faut apprendre, c'est très simple de se servir des modules (on ne parle pas ici d'en écrire, c'est un peu plus compliqué), et c'est l'abondance facilement accessible (grâce au CPAN ou à PPM) de ces modules qui fait une partie de la puissance de Perl.

    D'autant qu'ici, File::Basename fait partie des modules du Core, donc il est déjà installé avec ton Perl, il suffit d'écrire au début du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use File::Basename;
    puis pour récupérer le nom d'un fichier (sans son extension, qui doit matcher '\.[^.]*') à partir de son chemin tu n'as plus qu'à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $filename = fileparse($path, qr/\.[^.]*/);
    Exemple pris directement de la doc de File::Basename.

    --
    Jedaï

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

Discussions similaires

  1. Expression régulière pour un nom
    Par SQLpro dans le forum ASP.NET
    Réponses: 10
    Dernier message: 06/03/2011, 17h38
  2. Réponses: 4
    Dernier message: 30/07/2010, 11h29
  3. Expression régulière pour prénom/nom
    Par blirette dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2008, 17h43
  4. Expression régulière pour récupérer une chaîne.
    Par z980x dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/06/2007, 15h01
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

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