Supprimer chaîne de caractère avec une expression régulière [Résolu]

Signaler
Messages postés
8
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Messages postés
8
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
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

Messages postés
8
Date d'inscription
mardi 23 février 2010
Statut
Membre
Dernière intervention
1 avril 2010

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