Filtrer un string avec une regular expression

Signaler
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
4 septembre 2009
-
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
4 septembre 2009
-
Bonjour je souhaiterai filtrer un string et enlever les caracteres non autorisés.
Pour cela ma regle de triage est definie par une expression du style : "a-zA-Z" ou "0-9_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF" par exemple.

Quelqu'un aurait une idee?

merci!!!

3 réponses

Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Slt,
Avec les fonctions <string> tu a peux prêt tout faire facilement au niveau traitement de chaine de caractère, je comprend pas ton problème.
Ciao
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Si tu veux vraiment ralentir ton programme avec des regex, regarde ce tuto, qui explique comment utiliser la partie regex de boost, librairie C++ bien connue.
Messages postés
8
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
4 septembre 2009

Salut, j'ai effectivement utilise les regex:

</code>
     string newSt(_T(""));
    const string IDENTIFIER_CHARS(_T("[0-9_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\xFF]+"));
    const boost::regex regexp(IDENTIFIER_CHARS);
   
     int size = static_cast(st.size());
    for(int i = 0; i < size; i++) // Copy until end of first line
    {
        string bas2 = st.substr(i,1);
        if (boost::regex_match(bas2, regexp)) // si ca matche c'est que le char est valide donc on l'ajoute
        {
            newSt += bas2;
        }
    }
    return newSt;
</code>

desole j'ai pas trouve l eformatage pour le code