2010-05-31 108 views

回答

7

您可以使用Regex.Matches

string[] bits = Regex.Matches(input, @"\w+(?:\W+\w+){0,29}") 
        .Cast<Match>() 
        .Select(match => match.Value) 
        .ToArray(); 

看到它联机工作:ideone

+1

它忽略每个项目的第一个字符。 – 2012-01-17 17:56:02

+0

@Nick Binnet:我已经更新了一个链接,显示了代码正常工作的例子。你能解释一下“它忽略了每件物品的第一个字符”是什么意思吗?我不明白你的意思,并且输出似乎没有任何“被忽略的字符”。 – 2012-01-18 08:41:33

+0

抱歉误解你的答案。我的不好,我正在尝试这个不同的目的。 – 2012-01-18 13:49:37

2

正则表达式分裂才有意义,如果你有一个非常大的或非常小的字符,可以成为其中的一部分你的字符串。或者,您可以使用String类的子字符串方法来获得期望的结果:

 string input = "abcdefghijklmnopqrstuvwxyz"; 
     const int INTERVAL = 5; 

     List<string> lst = new List<string>(); 
     int i = 0; 
     while (i < input.Length) 
     { 
      string sub = input.Substring(i, i + INTERVAL < input.Length ? INTERVAL : input.Length - i); 
      Console.WriteLine(sub); 
      lst.Add(sub); 
      i += INTERVAL; 
     } 
相关问题