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 perl fichier


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 29
    Points
    29
    Par défaut regex perl fichier
    Bonjour,

    Si je mets dans un fichier les lignes suivantes :

    type fonction1(arguments)
    type fonction2 (arguments)
    static type fonction3 (arguments)

    J'aimerais obtenir dans une expression régulière, le nom de la fonction, c.-à-d., fonction1, fonction2 et fonction3 quand je parcourais ces lignes du fichier.
    J'avais pensé à une expression régulière de ce genre :
    ($fonction) = ($line =~ /\s(.*)/);

    $fonction récupère fonction1 dans la 1ère ligne, puis $fonction récupère fonction2 dans la 2ème ligne, et ainsi de suite pour la 3ème ligne.

    Quelle expression régulière faudrait-il pour faire cela ?

    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Pour être un peu plus précis, je proposerais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($function_name) = $line =~ /\s([^\s]*?)\s*\(/;
    (testé avec les 3 exemples fournis).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Pour être un peu plus précis, je proposerais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($function_name) = $line =~ /\s([^\s]*?)\s*\(/;
    (testé avec les 3 exemples fournis).
    Merci Philou67430.
    Peux-tu m'expliquer ton expression régulière ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Bien sûr : /\s([^\s]*?)\s*\(/

    D'abord, le texte donc contenir un espace /\s/, suivi /([^\s]*?)/ d'un nombre quelconque de caractère autre que des espaces que je capture (mais en m'arrêtant dès que la suite du motif est trouvée : c'est une recherche non gourmande, définie avec *?), pour finir /\s*\(/ par un nombre nul ou quelconque d'espace suivi d'une parenthèse ouvrante.

    Voilà, je crois avoir été complet.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. [débutant] PERL :fichier saisi en variable ?
    Par laatysha dans le forum Langage
    Réponses: 9
    Dernier message: 17/06/2008, 14h07
  2. Perl, Fichier textes, et hashes
    Par Arnaud62 dans le forum Langage
    Réponses: 9
    Dernier message: 04/01/2008, 12h07
  3. Script perl: Fichier introuvable !
    Par Bruno51 dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2007, 11h29
  4. [Regex perl] Matcher un gros fichier
    Par osoumayaj dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 18/01/2007, 09h37
  5. regex dans fichier XML
    Par pouss dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/10/2006, 09h35

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