Bonjour à tous
J'aimerais bien séparer une chaîne " 1 270,00 AE452P",
J'utilise chaine.split(" "c) mais malheureusement ça sépare le 1 du 270,00 !!
Si vous avez des suggestion pour avoir le résultat suivant {"1 270,00","AE452P"} et merci d'avance.
Version imprimable
Bonjour à tous
J'aimerais bien séparer une chaîne " 1 270,00 AE452P",
J'utilise chaine.split(" "c) mais malheureusement ça sépare le 1 du 270,00 !!
Si vous avez des suggestion pour avoir le résultat suivant {"1 270,00","AE452P"} et merci d'avance.
Tu pourrais utiliser Regex...
Merci tout d'abord pour la réponse.
Justement, mais il me faut les critères si je mets :
Dim myRegex As New Regex("\s")
Dim tab As String() = myRegex.Split(chaine)
C'est toujours le même problème : il me donne ça{"1","270,00","AE452P"} et moi je veux ça {"1 270,00","AE452P"}
T'as quoi comme certitude sur cette chaine ?
Les Regex avec des groups seraient le must mais il faut savoir comment est composée ta string.
Selon la réponse on pourrait peut-être imaginer plus simple.
Enfin il reste la méthode C, la plus simple :P
Il faudrait plutôt le faire à l'envers si possible, puisque tu ne connais pas le ou les espaces dans le nombre.
Il faudrait dire : Sépare le dernier mot (chaine de caractère avec le "dernier" espace"), et tu prends le reste.
et tu fais un TryPArse sur le reste pour faire un nombre.
Ceci ferait l'affaire ?
En détails:Code:^\s*([\d, ]*)\s([a-zA-Z0-9]*)
- ^\s* on saute le premier espace (on peut aussi utiliser un trim avant d'appliquer la regex, au choix)
- ([\d, ]*) on récupère tous les nombres, la virgule et les espaces
- \s on saute un espace
- ([a-zA-Z0-9]*) on récupère ce qui suit
Résultats :
- " 1 200,84 ABC123DE" = {"1 200,84", "ABC123DE"}
- " 1 200 000,84 ABC123DE" = {"1 200 000,84", "ABC123DE"}