Supprimer chaîne de caractère avec une expression régulière

Résolu
Unlix Messages postés 8 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 1 avril 2010 - 1 avril 2010 à 09:06
Unlix Messages postés 8 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 1 avril 2010 - 1 avril 2010 à 15:43
Bonjour,

Je souhaiterai supprimer les chaînes de caractères d'un fichier avec une expression régulière sauf 3 chaînes qui sont "Str" "Int" "Pic".

Pour cela je parcours le fichier ligne par ligne et je vérifie la ligne. je pense utiliser regex.replace(...) mais je ne sais pas comment lui dire d'éviter de supprimer les 3 chaînes citées au dessus.

exe:
CString sTrad = MgLoc::LoadStr(L"Str" + "bla bla bla");
doit donner après:
CString sTrad = MgLoc::LoadStr(L"Str" + "");
ou
CString sTrad = MgLoc::LoadStr(L"Str" + );

Avez-vous une idée?

Merci par avance,
Unlix

1 réponse

Unlix Messages postés 8 Date d'inscription mardi 23 février 2010 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 15:43
Bon j'ai résolu mon problème d'une manière détourné mais ca marche.

Voici le code si ça peut aider du monde:
private string _ExcludeString(string sline)
{
    List<string> lstString = new List<string>();
    string sLineModified = sline;
    Match m;
    Regex r = new Regex(""(.+?)"", RegexOptions.Singleline | RegexOptions.Compiled);
    for (m r.Match(sline); m.Success; m m.NextMatch())
       lstString.Add(m.Groups[1].ToString());
    foreach (string sSupp in lstString)
    {
       if (sSupp != "Str" && sSupp != "Int" && sSupp != "Pic")
          sLineModified = sLineModified.Replace(sSupp, "");
    }
    return sLineModified;
}


++
Unlix
3
Rejoignez-nous