string.split - 由多个字符分隔符组成

138 c# split

我在c#中使用"] ["的分隔符拆分字符串时遇到问题.

例如字符串"abc] [rfd] [5] [,] [."

应该产生一个包含的数组;
abc
rfd
5
,
.

但我似乎无法让它工作,即使我尝试RegEx我也无法在分隔符上得到分割.

编辑:基本上我想解决这个问题,而不需要正则表达式.我接受的解决方案是;

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

我很高兴能够解决这个分裂的问题.

Mar*_*ell 247

显示两者string.SplitRegex用法:

string input = "abc][rfd][5][,][.";
string[] parts1 = input.Split(new string[] { "][" }, StringSplitOptions.None);
string[] parts2 = Regex.Split(input, @"\]\[");
Run Code Online (Sandbox Code Playgroud)

  • 或者如果你的最小代码肛门像我一样:'var parts1 = input.Split(new [] {"] ["},StringSplitOptions.None);' (5认同)
  • 在`input.Split(new string [] {"] ["})`上提供`StringSplitOptions.None`有什么好处? (2认同)
  • @ C4u`String.Split(“ []”。ToCharArray())`这将分别由[和]拆分。例如:Hello [World] Its [Me!会是:你好,世界,它,我! (2认同)

SwD*_*n81 31

string tests = "abc][rfd][5][,][.";
string[] reslts = tests.Split(new char[] { ']', '[' }, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这种方法假设他意味着要分割每一个]和[,即使它们没有出现在[组合]中. (7认同)
  • string.Split的重载将它视为两个单独的分隔符 - 只是你丢弃其余的分隔符.有一个重载接受一个字符串作为分隔符(实际上是一个字符串数组) - 所以你不必删除空值(意思是:你可以**找到**空值,当它们有效存在于数据) (2认同)

sea*_*020 11

另外一个选项:

用单个字符替换字符串分隔符,然后拆分该字符.

string input = "abc][rfd][5][,][.";
string[] parts1 = input.Replace("][","-").Split('-');
Run Code Online (Sandbox Code Playgroud)

  • 不是个好主意.考虑:`string input ="abc] [rf-d] [5"`."rf-d"中的" - "将作为分隔符捕获.请参阅上面接受的答案. (3认同)