1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| string input = @"France,FR,""Population ages 00-14, total"",SP.POP.0014.TO,3835508";
string pattern = @"(?:\A|(?!\A)\G,)(?:""(?<field>(?>[^""]+|"""")*)""|(?<field>[^,""]*))";
MatchCollection mc = Regex.Matches(input, pattern);
// on affiche les résultats
foreach (Match m in mc) {
Console.WriteLine(m.Groups["field"].Value);
}
// on vérifie que le dernier résultat est bien à la fin de la chaîne et par conséquent que le
// format de la chaîne est correct. Pour cela on utilise l'index et la taille du dernier résultat.
Match lm = mc[mc.Count -1];
if (lm.Index + lm.Value.Length == input.Length ) {
Console.WriteLine("OK");
} else {
Console.WriteLine("Format non conforme.");
} |
Partager