我在文中有数据:
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");
}
但它无法完成,请求帮助我。
答案 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(|
)。