【问题标题】:Splitting a string array based on a word C# [closed]基于单词C#拆分字符串数组[关闭]
【发布时间】:2014-07-31 08:40:08
【问题描述】:

我有一个格式如下的字符串数组:

      " Number 1 
        asdf asdfn asfm;lamf --- Information
        Number 2
        asdf asdfn asfm;lamf --- Information
        Number 3
        asdf asdfn asfm;lamf --- Information
      "

我必须将整个字符串 [] 作为单独的字符串数组:

string [] first = " Number 1 
                asdf asdfn asfm;lamf --- Information"


string [] second = " Number 2 
                asdf asdfn asfm;lamf --- Information"

如何使用 Regex 或 Split,以便可以使用关键字“Number”来拆分字符串数组。请帮帮我!

【问题讨论】:

  • 你能把你试过的代码给我们吗?
  • Mystringarray.Split(new string[] { "Number" }, StringSplitOptions.None);但是 Split 不适用于字符串数组。
  • 请准确告诉我们您想要实现的目标...为什么要使用字符串数组来存储单个字符串?

标签: c# regex split string-matching


【解决方案1】:

假设您有一个包含原始数据的字符串:

        string testCase =  "Number 1 asdf asdfn asfm;lamf --- Information Number 2 asdf asdfn asfm;lamf --- Information Number 3 asdf asdfn asfm;lamf --- Information";

        string[] numbers = Regex.Split(testCase, "Number").Where(s => s.Trim() != "" && s != "Number").Select(x => "Number" + x).ToArray();

这将是结果:

【讨论】:

    【解决方案2】:

    string.Split() 会遇到的问题是它会删除您的分隔符。一种解决方法是重新插入它。

    string[] parts = originalString.Split(new[] { "Number" }, StringSplitOptions.None)
        .Select(s => "Number" + s)
        .ToArray();
    

    您仍然需要清理换行符...

    【讨论】:

    • 不拆分需要一个 char[] 而不是一个字符串?
    • @RodrigoSilva Split 有很多重载,但不是这个答案中的重载。
    • 我有一大块数据。我需要将它们分成更小的块。每个块都以“数字”一词开头。我的方法应该是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2016-12-04
    • 1970-01-01
    • 2016-12-31
    • 2012-07-07
    相关资源
    最近更新 更多