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

C++ Discussion :

Regex et C++ ?


Sujet :

C++

  1. #1
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut Regex et C++ ?
    Bonjour,

    J'aurais besoin d'utiliser une ou plusieurs regex pour filtrer une string.
    J'ai vu que la librairie Boost proposait ça.
    Mais je voudrais savoir si c'est le seul moyen pour utiliser des regex ou
    si la STL ou la librairie standard du C++ proposent quelque chose.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il n'y rien de standard en C++ pour les regex à ma connaissance.

    Par contre, il y a quelque chose en C sous POSIX.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Donc si je suis sous Windows il n'y a que Boost c'est ça ?

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Pour mon programme "RegexBuilder" de test et de validation des expressions régulières (http://phoenix.servhome.org/regexbuilder_fr.php), j'utilise la librairie Boost.Regex et cela marche plutôt bien, j'en suis très content.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    boost est une des bibliothèques qui a influencé std::tr1::regex (en gros les regex du prochain standard)
    Et il me semble que maintenant boost::regex correspond à std::tr1::regex.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre confirmé

    Inscrit en
    Août 2007
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 300
    Points : 527
    Points
    527
    Par défaut
    Le "Visual C++ 2008 Feature Pack" propose une implémentation de certaines parties de tr1 intégrée à Visual Studio 2008, y compris regex (#include <regex>).
    Notre spécialiste Boost dans l'équipe me dit souvent que tr1::regex est nettement moins performant que boost:: xpressive, donc tant qu'à passer à Boost, autant y jeter un coup d'œil aussi.
    "Maybe C++0x will inspire people to write tutorials emphasizing simple use, rather than just papers showing off cleverness." - Bjarne Stroustrup
    "Modern C++11 is not your daddy’s C++" - Herb Sutter

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,


    De mon côté je trouve ce code C++ intéressant pour réaliser des expressions régulières :
    http://www.regexlab.com/en/deelx/

    Le fichier zip contient un seul fichier : deelx.h qui contient à la fois le code et les en-têtes des fonctions.

    Il y a toutefois un copyright sur le code :
    Citation Envoyé par regexlab
    // deelx.h
    //
    // DEELX Regular Expression Engine (v1.2)
    //
    // Copyright 2006 (c) RegExLab.com
    // All Rights Reserved.
    //
    // http://www.regexlab.com/deelx/
    //
    // Author: Ê·ÊÙΰ (sswater shi)
    //
    // $Revision: 1.1.2.41 $
    //
    tu ne peux donc pas modifier le fichier et son contenu.

    autre remarque :
    Citation Envoyé par regexlab
    DEELX is free for personal use and commercial use.

    Renseigne toi bien avant de l'utiliser Il y a une documentation complète et des exemples.

  8. #8
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Je te conseillerais aussi Deelx.

    Très très simple d'utilisation, il suffit d'inclure le .h dans les fichiers qui en ont besoin (typiquement, tes classes utilisant des RegExp).

    Si la licence de Deelx te convient, c'est bien plus simple que de se lancer dans une installation de boost ou de compter sur des outils dépendant d'une version d'un compilateur.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par buzzkaido Voir le message
    Si la licence de Deelx te convient, c'est bien plus simple que de se lancer dans une installation de boost ou de compter sur des outils dépendant d'une version d'un compilateur.
    Ah ? C'est si complique que ca ? Y'a un installeur qui existe en plus:
    http://www.boost-consulting.com/products/free
    http://arb.developpez.com/c++/boost/install/vc++/

    A une epoque, on parlait un peu de cette lib de chez MS research:
    http://research.microsoft.com/projec...egex_perf.html
    j'ai jamais teste.

  10. #10
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel Voir le message
    Ah ? C'est si complique que ca ? Y'a un installeur qui existe en plus
    Non, c'est pas très compliqué, mais copier un .h dans ton projet reste quand même plus simple (et plus léger).

    Surtout si on a pas besoin de tout le reste de Boost.

Discussions similaires

  1. [Regex] Plusieurs motifs
    Par sissi_l dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 29/06/2004, 14h15
  2. [jakarta][regex]Matcher mot en entier.
    Par thibaut dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 26/05/2004, 13h33
  3. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22
  4. [regex][string] replaceAll bogué ?
    Par 7eme dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2003, 16h36
  5. Cherche regex...
    Par laurent_h dans le forum C
    Réponses: 4
    Dernier message: 31/03/2003, 11h24

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