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 + expression régulière


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Par défaut Perl + expression régulière
    Bonjour à tous,

    Comme je débute en perl, je trouve toujours des difficultés dans les regex,

    j'ai un fichier contenant plusieurs lignes dont je veux extraire seulement les lignes sous cette forme;

    deb: Mot1: phrase.
    deb: Mot2: phrase.
    ...

    j'ai fait l'expression suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    next unless (/^\s*(deb):\s*(.*?)([^\s:]*):\s*([^.]*\.)$/);
    en fait le problème dans cette expression est qu'elle me renvoie aussi des lignes de forme: deb: mot1 mot 2: phrase. (càd 1 ou plusieurs mots après le premier : alors que je ne veux qu'un seul mot après le premier

    comment je peux modifier cette expression SVP ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    essaie de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    next unless (/^\s*(deb):\s*(.*?)([^\s:]*):\s*([^.]*\.)$/);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    next unless (/^\s*(deb):\s*(\S+):\s*([^.]*\.)$/);

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Par défaut
    Bonsoir,
    J'ai remplacé mais la sortie est vide !!

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Hum, tu n'expliques pas bien ce que tu veux faire. Tu veux rejeter les lignes où il y a deux mots, ou tu ne veux garder que le premier mot quand il y en a plusieurs?

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Par défaut
    je veux garder les lignes commençant par le mot deb puis deux points ( puis espace puis un seul mot suivi de deux points puis un ensemble des mots et un point à la fin.

  6. #6
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Donc, je n'avais probablement pas bien compris ton besoin, mais je ne suis toujours pas sûr de bien comprendre.

    Si, dans ta liste de lignes, tu as:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     deb: mot1 mot 2: phrase.
    tu veux l'éliminer, ou tu veux garder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     deb: mot1: phrase.
    uniquement (et donc éliminer seulement les mots supplémentaires?

Discussions similaires

  1. [PERL] Expressions régulières
    Par Ashin dans le forum Langage
    Réponses: 9
    Dernier message: 16/03/2010, 16h46
  2. PERL: expression régulière
    Par Ashin dans le forum Linux
    Réponses: 2
    Dernier message: 19/01/2010, 15h47
  3. [Perl]Expression régulière .
    Par Premium dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2009, 15h43
  4. [Noob] Formation rapide à Perl - Expressions régulières
    Par Konrad Florczak dans le forum Langage
    Réponses: 16
    Dernier message: 25/09/2006, 14h48
  5. Expression Régulière PERL
    Par slyv dans le forum Langage
    Réponses: 8
    Dernier message: 25/10/2005, 20h30

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