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

Boost C++ Discussion :

Expression régulière invalide


Sujet :

Boost C++

  1. #1
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut Expression régulière invalide
    Bonjour,

    Je cherche à effectuer la liste des fichiers dans un dossier selon un filtre, en passant par les expressions régulières.
    Cependant, il semblerait que par exemple, lorsque j'utilise une expression régulière commençant par *, je prends une exception "invalid preceding regular expression"

    J'utilise la version 1.34.1 de Boost avec l'IDE Borland C++ Builder...

    Voici mon bloc de code :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        boost::regex filter;
        filter.assign("*\.xml"); 
        directory_iterator end_itr;
        for (directory_iterator iter(directory); iter != end_itr ; iter++)
        {
          if (is_directory(iter->status()))
             continue;
     
          if (boost::regex_match(iter->path().leaf(), filter))
             fileList.push_back(iter->path().file_string());
        }
    // fileList est un vecteur contenant la liste des fichiers répondant aux critères

    Si vous aviez une indication à me donner pour résoudre ce problème bien embêtant, ce serait génial...

    Merci

  2. #2
    Sub
    Sub est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 20
    Par défaut
    '*' signifie 0 ou plus et doit s'appliquer à un caractère comme '.' ou '\d' par exemple. Dans ton cas si tu veux prendre n'importe quel fichier qui se termine par .xml, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filter.assign(".*\.xml");

  3. #3
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Ok, c'est niquel ça fonctionne bien Merci beaucoup

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/11/2014, 08h50
  2. expression régulière : invalid range in character
    Par JLC83 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 09/07/2011, 16h33
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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