【问题标题】:Split text with string用字符串分割文本
【发布时间】:2018-12-02 11:02:05
【问题描述】:

我有一个类似的文字。 星期一 vhfjj j gjhgjh ghghjg hjgh jghj gug 星期一 bhjgghkg hjkhjkg jkghkj 星期一星期三 ghjgjh jghhgihi juhihi hji 星期五

现在我希望将此文本存储到数组中 在 day.monday 剩余文本 on day.tuesday remaning text 等等。 我试过了

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

但两者都只返回 1 个结果。文本可以包含不止一次的空格,唯一的想法是我们必须使句子以“当天”开始。

【问题讨论】:

  • 什么不起作用?您的代码似乎有效
  • 您的预期结果是什么?
  • 不知道,它只返回包含整个文本的数组中的一项
  • 我刚刚试了一下,都返回一个包含5个项目的数组
  • 实际上我在每一天之前都有不均匀的空格。

标签: c# .net regex string linq


【解决方案1】:

如果你想保留"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);

【讨论】:

  • 假设“当天”,您的代码正在拆分。分隔符,因此生成的数组元素将没有该分隔符。我的代码首先替换所有“当天”。 “on day|on day”的出现次数。然后在“当天|”上进行拆分使之“日日”。部分保留在数组元素中
【解决方案2】:

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

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

.NET 核心

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

.NET 框架

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

【讨论】:

猜你喜欢
  • 2023-01-10
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
相关资源
最近更新 更多