【发布时间】:2014-08-21 18:16:56
【问题描述】:
我有一个格式如下的字符串:
文件 = " \r\n 6 : size=70 : <Message body> \r\n 4 : size=3 : Test.txt \r\n 17 : size=24 : Test2.txt"
我想写一个正则表达式来去掉所有的空格,然后将字符串拆分成一个字符串数组,如下所示:
stringArray[0] = "6:size=70:<Message body>"
stringArray[1] = "4:size=3:Test.txt"
stringArray[2] = "17:size=24:Test2.txt"
我正在尝试这样做:
Regex pattern = new Regex(@"\s", RegexOptions.Compiled);
files = pattern.Replace(files, String.Empty);
string[] scores = files.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
但问题是我的正则表达式连“\r\n”都去掉了,所以我不可能通过Environment.NewLine将它拆分,那么我该如何实现这种行为呢?
编辑:我忽略了一件事。我想在拆分<Message body> 或任何其他拆分字符串时保留空格,所以我实际上需要在最后一个冒号的第一个字符之后但在 \r\n 的最后一个字符之前保留空格...例如,@987654328 @ 或 Test 3.txt 应该保留空格。
编辑:我想先用正则表达式,再拆分,
【问题讨论】:
-
您可以先拆分,然后删除空格。但是“消息正文”中有空格,所以你真的要删除空格吗?
-
这是您要找的东西吗? DEMO
-
@KyleW 不,我想我忽略了这个事实,我想在消息正文中保留空格。
-
@KyleW 抱歉,我编辑了问题。
-
@user3218114 很抱歉,不完全是。我编辑了问题!
标签: c# .net regex string split