Split chaine sans séparateur

Résolu
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 11 févr. 2009 à 15:08
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 13 avril 2009 à 09:54
Bonjour

j'ai une chaine des 40 caractères (longueur fixe). Cette chaine contient que des chiffres et est renseignée par paquet de 10 chiffres (soit 4 paquets maxi)

Ex 1 : "01234567899876543210                                      "
Ex 2 : "0123456789                                                          "
Ex 3 : 0123456789012345678901234567890123456789"

J'aimerai spliter cette chaine et la mettre dans un tableau de string.
J'essaye, sans réussite avec les regex.
pouvez vous m'aider ?

DT

8 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
13 avril 2009 à 09:54
Bonjour,

Bien que je sois d'accord avec Bidou,
Mais si on ne connait pas la longeur des chaines, et si, comme dans l'exemple, elles possedent d'autres caracteres (padding) je pense qu'un regex avec une pattern = "(\d{10})" devrait suffire.

private
Regex MyRegex =
new
Regex(

   "([file://\\d{10 \\d{10]})",

   RegexOptions.IgnoreCase
   |
RegexOptions.Multiline
    |
RegexOptions.ExplicitCapture
   |
RegexOptions.CultureInvariant
   |
RegexOptions.Compiled
   );

private
void Search(
string s)
{

   MatchCollection ms = MyRegex.Matches(s);

   Console.WriteLine(
"Trouvé {0} chaines de 10 caracteres dans '{1}'", ms.Count, s);

   foreach (
Match m
in ms)

      Console.WriteLine(m.ToString());
}

private
void button1_Click(
object sender,
EventArgs e)
{

   string Ex1 =
"01234567899876543210                                      ";

   string Ex2 =
"0123456789                                                          ";

   string Ex3 =
"0123456789012345678901234567890123456789";

   Search(Ex1);
   Search(Ex2);
   Search(Ex3);

}

C# is amazing, enjoy it!
3
Rejoignez-nous