web-dev-qa-db-fra.com

string.split - par délimiteur de plusieurs caractères

je ne parviens pas à scinder une chaîne en c # avec un délimiteur de "] [".

Par exemple, la chaîne "abc] [rfd] [5] [] [."

Devrait donner un tableau contenant;
abc
rfd
5
,
.

Mais je n'arrive pas à le faire fonctionner, même si j'essaye de RegEx, je ne peux pas obtenir de séparation sur le délimiteur.

EDIT: Essentiellement, je voulais résoudre ce problème sans avoir besoin d’une expression régulière. La solution que j'accepte est la suivante:

string Delimiter = "][";  
var Result[] = StringToSplit.Split(new[] { Delimiter }, StringSplitOptions.None);

Je suis heureux de pouvoir résoudre cette question partagée.

134
enricco

Pour afficher à la fois l'utilisation de string.Split et de Regex:

string input = "abc][rfd][5][,][.";
string[] parts1 = input.Split(new string[] { "][" }, StringSplitOptions.None);
string[] parts2 = Regex.Split(input, @"\]\[");
244
Marc Gravell
string tests = "abc][rfd][5][,][.";
string[] reslts = tests.Split(new char[] { ']', '[' }, StringSplitOptions.RemoveEmptyEntries);
29
SwDevMan81

Une autre option:

Remplacez le délimiteur de chaîne par un seul caractère, puis divisez-le sur ce caractère.

string input = "abc][rfd][5][,][.";
string[] parts1 = input.Replace("][","-").Split('-');
11
seabass2020
Regex.Split("abc][rfd][5][,][.", @"\]\]");
2
Christopher Klewes