Regex reg = new Regex("\".*,.*\"");
string a = "lala\"test, ceci est un test\" lala";
a= reg.Replace(a, "\".*[a].*\"");
Regex reg = new Regex("\".*,.*\"");
string a = "lala\"test, ceci est un test\" lala";
MatchCollection mc = reg.Matches(a);
string b = mc[0].ToString();
b = b.Replace(',', '.');
a = reg.Replace(a, b);
Oui ça fonctionne mais je ne suis pas vraiment satisfait. Juste pour pouvoir splitter correctement, je dois changer les virgules en un autre caractère puis faire le chemin inverse après avoir splitter. Ça me semble un peu ridicule mais c'est la seule solution que j'ai trouvée pour l'instant (grâce à ton aide)
(?<nom>\w+),(<prenom>\w+),(?<datenaiss>\d\d/\d\d/\d\d\d\d\d),"(?<commentaire>.*(\r\n)*)"
6 févr. 2016 à 08:24
6 févr. 2016 à 08:26
6 févr. 2016 à 11:24
6 févr. 2016 à 13:28
Comment faire dès lors pour split uniquement qd la virgule ne se trouve pas entre guillemet ? (Utiliser regex.split mais avec quelle regex? une regex conditionnelle ?)
Merci
6 févr. 2016 à 18:59
En général un csv c'est assez figé, toujours les mêmes colonnes dans le même ordre, si c'est le cas, il suffit de faire la différence entre le nombre de données attendues après le split et ceux obtenus, tu "rejoin" celles en trop.