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

Shell et commandes GNU Discussion :

Problème Expression Régulière


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut Problème Expression Régulière
    Bonjour,

    J'ai un problème avec une expression régulière. Voici mes lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ( expr $line : "/.*PUBPARC.*/" )
    then
    	if ( expr $line : "/.*DEPRECATED.*/" )
    	then
    		// première option //
    	else
    		// deuxième option //
    	fi
    fi
    Ceci appliqué à la ligne ci-dessous rentre dans la deuxième option.

    /exec/applis/blabla/PUBPARC/DEPRECATED_mon_test.xml

    Il trouve bien PUBPARC, mais refuse de trouver DEPRECATED.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,
    Retire le "\" final de ton expression régulière qui ne fonctionne pas et cela devrait le faire
    d'ailleurs, les ".*" finaux sont inutiles et gaspille inutilement du temps.

  3. #3
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    J'avais cru comprendre que les "/" étaient les marqueurs de début et de fin de l'expression régulière.

    En effet maintenant ça fonctionne, mais dans quel cas les utiliser ? Et pourquoi là ils sont considérés comme des caractères ?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Ce n'est pas un délimiteur dans la commande expr mais il est vrai que cela peut en être un en sed,perl,awk,...

  5. #5
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Ce n'est pas un délimiteur dans la commande expr mais il est vrai que cela peut en être un en sed,perl,awk,...
    Je m'en suis servi pour des sed et des awk, en effet... J'ai généralisé bêtement

    Merci de l'info !

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 654
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Bonjour,

    pourquoi utiliser expr plutôt que grep, ce sont toutes deux des commandes externes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if echo "$line" | grep -q '<motif>'
    then
    ...
    fi
    NB: les parenthèses exécutent la commande dans un sous-interpréteur, elles ne constituent pas un test.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. Problème expressions régulières
    Par cottcott dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2007, 14h29
  2. Réponses: 3
    Dernier message: 20/04/2007, 14h47
  3. Problème expression régulières
    Par LEK dans le forum C#
    Réponses: 2
    Dernier message: 18/04/2007, 11h40
  4. [RegEx] problème expression régulière
    Par H-bil dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2007, 15h38
  5. Problème expressions régulières
    Par sozie9372 dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 15h13

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