如何按空格分割数据

时间:2017-07-13 08:44:11

标签: c# regex asp.net-mvc

我在文中有数据:

W S 6
W H 11
W D 6
W C 8
W N 9

N S 7
N H 2
N D 6
N C 5

N N 4
E S 6
E H 11
E D 6
E C 8
E N 9

我希望将它们拆分为字符串数组,如:

string[0] array=
"W S 6
W H 11
W D 6
W C 8
W N 9";

string[0] array=
"N S 7
N H 2
N D 6
N C 5";

string[0] array=
"N N 4
E S 6
E H 11
E D 6
E C 8
E N 9";

我一直这样做:

using(StreamReader reader = new StreamReader(uploadedFile.InputStream))
                {

                    string read = reader.ReadToEnd();
                    string[] Array = Regex.Split(read,"\n");
                }

但它无法完成,请求帮助我。

3 个答案:

答案 0 :(得分:1)

您尝试按换行(\n)拆分。你需要按空格分割:

using(StreamReader reader = new StreamReader(uploadedFile.InputStream))
{
     string read = reader.ReadToEnd();
     string[] Array = Regex.Split(read," ");
}

甚至更好的空格(空格,制表符......)

string[] Array = Regex.Split(read,"\s");

答案 1 :(得分:1)

您可以使用它来拆分换行符上的文字。

spatstat

答案 2 :(得分:0)

您需要使用双换行符进行拆分:

var nMyNumber = "1011100111100110101110110";

console.log(
  nMyNumber.replace(/[01]/g, function(m) {
    return m == 0 ? '1' : 0;
  })
)

// with ES6 arrow function
console.log(
  nMyNumber.replace(/[01]/g, m => m == 0 ? '1' : 0)
)

请参阅C# demo

输出:

var read = "W S 6\r\nW H 11\r\nW D 6\r\nW C 8\r\nW N 9\r\n\r\nN S 7\r\nN H 2\r\nN D 6\r\nN C 5\r\n\r\nN N 4\r\nE S 6\r\nE H 11\r\nE D 6\r\nE C 8\r\nE N 9";
var arr = read.Split(new[] {"\r\n\r\n", "\n\n"}, StringSplitOptions.RemoveEmptyEntries);
Console.Write(string.Join("\n-- NEXT ITEM ----\n", arr));

请注意,如果您的换行符不一致,则必须将所有可能的变体添加到第一个W S 6 W H 11 W D 6 W C 8 W N 9 -- NEXT ITEM ---- N S 7 N H 2 N D 6 N C 5 -- NEXT ITEM ---- N N 4 E S 6 E H 11 E D 6 E C 8 E N 9 参数中。

或使用Split

Regex.Split

请参阅another C# demo

此处var arr = Regex.Split(read, @"(?:\r\n?|\n){3,}").Where(m => !string.IsNullOrEmpty(m)); 匹配3个或更多((?:\r\n?|\n){3,}是限制量词)  换行符:CR后跟可选的LF({3,})或(\r\n?)和LF(|)。

查看regex demo here