2013-11-25 114 views
0

我想分割一個字符串C#圍繞一個帶括號的Regex,但我不希望結果數組包含分隔符。C#Regex.Split與括號中沒有分隔符的結果

例如

Regex.Split("1;2;3","(;)")返回{ 「1」, 「;」, 「2」, 「;」, 「3」}。

這顯然在Net 2.0中發生了變化。以前,它會返回{「1」,「2」,「3」}。

如何在後來的.Net版本中這樣做,以便它像舊版本的Net版本或類似於它在Java String.Split()中的工作?

回答

4

你甚至在這裏需要一個正則表達式嗎? String.Split會給你完全相同的結果,例如

var numbers = "1;2;3".Split(';'); 

如果你還是想用Regex,剛剛擺脫的括號即

Regex.Split("1;2;3", ";"); 
+0

沒有,當然我不會需要一個正則表達式。爲了解決這個問題,我簡化了這個例子。我有一個需要括號的正則表達式,即:(\ s | - | - | _)+ –

+0

@ D.T。我只能回答提出的問題,如果解決方案的某些部分無法改變,最好儘早指出這些問題,以避免人們發佈替代解決方案......所以現在問題要求提出 - 爲什麼要做你需要括號?顯然,數據沒有任何括號,因此正則表達式不需要它。 – James

+0

謝謝,詹姆斯。您是否有辦法編寫包含在註釋中的正則表達式,即(\ s | - | - | _)+,而沒有括號?每一個正則表達式都可以重寫嗎?如果沒有,在沒有收到分隔符作爲結果的一部分的情況下,是否應該沒有辦法在正則表達式上分割? –