J'ai une chaîne de caractères contenant le texte "AA55BB10CC1DD10E123". Je dois diviser la chaîne et la placer dans la liste comme champ de texte/valeur commeSéparer une chaîne en C#
AA | 55
BB | 10
CC | 1
DD | 10
E | 123
Merci
J'ai une chaîne de caractères contenant le texte "AA55BB10CC1DD10E123". Je dois diviser la chaîne et la placer dans la liste comme champ de texte/valeur commeSéparer une chaîne en C#
AA | 55
BB | 10
CC | 1
DD | 10
E | 123
Merci
En utilisant ma boule de cristal magique, j'ai déterminé ce fut la réponse que vous recherchez!
string[] split = Regex.Matches("AA55BB10CC1DD10E123", @"[A-Z]+\d+")
.Cast<Match>()
.Select(x => Regex.Match(x.Value, @"[A-Z]+").Value + "|" + Regex.Match(x.Value, @"\d+").Value).ToArray();
S'il vous plaît essayez de montrer ce que vous avez essayé, c'est ce que vous cherchez.
List<string> split = Regex("[A-Z]{1}[a-z0-9]*");
split= reg.Matches(InputText).Cast<Match>().Select(m => m.Value).ToList();
Il n'y a aucune raison d'instancier la liste dans votre première ligne de code si vous allez la jeter à la ligne 3. – itsme86
très vrai, il était plus juste de montrer le split en utilisant Regex. –
string text = "AA55BB10CC1DD10E123";
var letters = Regex.Split(text,@"\d").Where(t => !string.IsNullOrEmpty(t));
var digits = Regex.Split(text, @"[A-Z]").Where(t => !string.IsNullOrEmpty(t));
var myList = letters.Zip(digits, (l, d) => new {l,d});
Quoi de vos critères de division? N'importe quel nombre de lettres suivi d'un nombre quelconque de chiffres? –
Et qu'avez-vous essayé? – lintmouse
Bienvenue dans StackOverflow! Nous ne sommes pas un service d'écriture de code. Bien que nous soyons heureux de vous aider avec votre question * spécifique *, s'il vous plaît nous montrer ce que vous avez écrit jusqu'à présent et quel problème particulier vous avez rencontré. Lisez [Comment poser une bonne question?] (Http://stackoverflow.com/help/how-to-ask) pour plus de détails. –