如何在c#中的逗号和换行符上拆分字符串?

时间:2016-03-24 12:23:59

标签: c# regex split

我正在尝试根据textarea的输入拆分一个可以用逗号或换行符输入的字符串。我不确定在c#中拆分此字符串的语法。 目前我有:

string[] splitString = inputString.Split(','); //WORKS
//string[] splitString = inputString.Split(new string[] { ",","\r\n","\n" }, StringSplitOptions.None); //DOES NOT WORK

2 个答案:

答案 0 :(得分:7)

由于某些文字使用\r作为新行。

您应该使用下面的代码并删除空条目以使阵列更清洁。

string[] splitString = inputString.Split(new string[] { ",", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);

或使用Regex.Split。 (这不会删除空条目。)

String[] splitString = Regex.Split(inputString, "[,\r\n]");

<强>更新

由于Regex.Split的评论,您还可以使用WiktorStribiżew删除空条目。

下面的代码删除了字符串开头或结尾的空条目。

String[] splitString = Regex.Split(inputString, "[,\r\n]+");

要消除显示在行的开头或结尾的空条目,请使用以下代码。

Regex.Split(Regex.Replace(inputString, "^[,\r\n]+|[,\r\n]+$", ""), "[,\r\n]+");

正则表达式语言

如果您想了解有关Regex的更多信息或其工作方式,可以查看here以获取快速参考。

答案 1 :(得分:0)

您可以将Environment.NewLine传递到字符串数组中:

string[] splitString = inputString.Split(new string[] { ",", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);