2010-05-31 106 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; 
     } 
相關問題