拆分多个字符分隔符

我在用分隔符“][”拆分 c # 中的字符串时遇到了麻烦。

例如字符串“ abc ][ rfd ][5][ ,][”

应该产生一个包含;
Abc
射频识别系统
5
,
.

但我似乎不能得到它的工作,即使我尝试正则表达式,我不能得到一个分隔符。

编辑: 本质上我想解决这个问题,而不需要正则表达式。我接受的解决办法是:

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

我很高兴能够解决这个分歧的问题。

270434 次浏览
string tests = "abc][rfd][5][,][.";
string[] reslts = tests.Split(new char[] { ']', '[' }, StringSplitOptions.RemoveEmptyEntries);

同时显示 string.SplitRegex的用法:

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

另一个选择:

将字符串分隔符替换为单个字符,然后对该字符进行拆分。

string input = "abc][rfd][5][,][.";
string[] parts1 = input.Replace("][","-").Split('-');

更快捷的方法直接使用无字符串数组而是字符串:

string[] StringSplit(string StringToSplit, string Delimitator)
{
return StringToSplit.Split(new[] { Delimitator }, StringSplitOptions.None);
}


StringSplit("E' una bella giornata oggi", "giornata");
/* Output
[0] "E' una bella giornata"
[1] " oggi"
*/

在.NETCore2.0及更高版本中,有一个 Split 过载允许这样做:

string delimiter = "][";
var results = stringToSplit.Split(delimiter);

拆分(netcore 2.0版本)