用字符串分割文本

时间:2018-12-02 11:02:06

标签: c# .net regex string linq

我有一个类似的文字。   星期一,星期三,星期三,星期三,星期三,星期五,星期五,星期五,星期五

现在我希望此文本存储到数组中,例如 在day.monday remianing文本上 在day.tuesday上还文本,依此类推。  我尝试过

MyText.Split(new string[] { "on day." }, StringSplitOptions.None);
Regex.Split(MyText, "on day.");

但是两者都只返回1个结果。文本可以包含多个空格,因此我们必须要使情感开始的想法是从“按日”开始。

2 个答案:

答案 0 :(得分:2)

如果您想保留"on day." 分隔符,则可以使用:

        string MyText = "on day.Momnday vhfjj j gjhgjh ghghjg hjgh jghj gug on day.tuesday bhjgghkg hjkhjkg jkghkj on day.wednesday ghjgjh jghhgihi juhihi hji on day.Friday jkhkj hjkhk j hjkh kj";
        MyText=MyText.Replace("on day.", "on day|on day.");
        string[] days = MyText.Split(new string[] { "on day|" }, StringSplitOptions.None);

答案 1 :(得分:2)

正如@DisplayName所注意的那样,.NET Framework的Split方法没有接受string参数作为分隔符的重载。它仅存在于.NET Core中。因此,将有两种解决方案:

string input = @"on day.Monday vhfjj ... hji on day.Friday jkhkj hjkhk j hjkh kj";

.NET Core

string[] x = input
             .Split("on day.", StringSplitOptions.RemoveEmptyEntries)
             .Select(z => "on day." + z)
             .ToArray();

.NET Framework

string[] x = Regex
             .Split(input, "on day.")
             .Select(z => "on day." + z)
             .Skip(1) //Emulation of StringSplitOptions.RemoveEmptyEntries
             .ToArray();