2012-01-19 34 views
2

我有一個字符串,其中包含一些標記。使用正則表達式切割字符串

實施例:asp.net vb6的晶體的報告

我使用正則表達式來此字符串切成幾個標籤象下面這樣:

string[] technos = Regex.Split(technoString, @"\W+"); 

foreach (var techno in technos) 
{ 
    ... 
} 

的問題是,此正則表達式是錯誤的:它產生太多的標籤。我的意思是,asp.net必須只有一個標籤,crystal-reports也必須只有一個標籤。

此時,正則表達式給了我下面的標籤:

  • ASP
  • VB6
  • 水晶
  • 報告

,我想

  • asp.net
  • VB6
  • 水晶報告

是否有人知道使用哪種正則表達式?

謝謝。

+2

爲什麼不使用'string.Split'與作爲分割字符的空間? – ChrisF

+0

你試過用空格char分隔嗎?你不必使用正則表達式來做到這一點。 – Beku

回答

4

爲什麼不使用String.Split

string str = "asp.net vb6 crystal-reports"; 
string[] parts = str.Split(); // Uses space as default separator 

parts是一個包含所需輸出的字符串數組。

+0

你需要'string.Split()'的參數。 – SomeWritesReserved

+1

我在LinqPad中沒有參數的測試,它的工作原理。 –

+2

來自MSDN:'如果分隔符參數是Nothing或不包含任何字符,則認爲空格字符是分隔符。「# –

3

如果只是空間,何樂而不爲

technoString.Split(' ') 
2

豈不工作分裂的空白?

string[] technos = Regex.Split(technoString, @"\s+"); 

如果只是正常的空間,使用正常分裂:

string[] technos = technoString.Split(); 
相關問題