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

Algorithmes et structures de données Discussion :

expression régulière pour reconnaitre une inclusion de fichier en c++


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 111
    Points : 38
    Points
    38
    Par défaut expression régulière pour reconnaitre une inclusion de fichier en c++
    Bonjour,

    J'aimerai que vous m'aidez à concevoir une expression régulière pour reconnaître une instruction d'inclusion de header en c++.

    Je rappelle que l'instruction d'inclusion en c++ est

    #include "toto.h" ou #include "path/toto.h" ou #include <path/toto.h> ou #include <toto.h>

    pour la reconnaître en elle-même je pense que je suis arrivé. C'est pour éviter les cas suivant que je bloque.

    inclusion non effective car écrite dans un commentaires ou string.

    "#include \"path/toto.h\"" ou // #include "path/toto.h" ou
    /* ...
    #include "path/toto.h"
    ....
    */

    merci de vos réponses.

  2. #2
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    salut

    un #include n'en pas pas un quand:
    il est en commentaire //
    commentaire /* */
    chaine de caractère " "
    chaine de caractère ' '
    précédé d'un # quelque chose

    te reste à écrire toutes ces regexp

  3. #3
    Membre averti

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 352
    Points
    352
    Par défaut
    ceci dit parser correctement les commentaires C avec une regexp ce n'est pas si simple que ca en a l'air, essaie google!


    Salutations,

    Gregoire

  4. #4
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    j'ai une proposition

    chaine entre ' ':
    "'"([^'\\]|("\\".))*"'"
    chaine entre " ":
    "\""([^\"\\]|("\\".))*"\""
    commentaire //:
    "//".*
    commentaire /* */ :
    "/*"([^\*]|(\*[^/]))*"*/"
    #define:
    "#define".*
    #autrechose:
    "#".*

    il manque essentiellement les macros sur plusieurs lignes
    et les chaines sur plusieurs lignes

Discussions similaires

  1. Expression régulière pour extraire une donnée
    Par ninou blue dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 19/12/2014, 13h52
  2. Réponses: 2
    Dernier message: 13/08/2014, 09h25
  3. Expression régulière pour tester une adresse email
    Par Pascale38 dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/02/2014, 13h56
  4. Expression régulière pour remplacer une apostrophe
    Par syrius31 dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2008, 20h34
  5. 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

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