2010-04-27 60 views
4
Regex rx = new Regex(@"[+-]"); 
    string[] substrings = rx.Split(expression); 

表達= 「-9a3dcbh-3bca-4ab4cf-3HC」 匹配一個空元素//這是iput串 我想要分割+或之間的串 - 。 我的VS調試器顯示子陣列是這樣的: 子串[0] = NULL // ???爲什麼 子串[1] = 9a3dcbh 子串[2] = 3bca 子串[3] = 4ab4cf 子串[4] = 3hc奇怪,regex.split方法

爲什麼arry的第一個元素爲null,是因爲我匹配+ - ,並且在我的輸入字符串中沒有+?

+0

修正,第一個元素是不爲空,它是「」 – dontoo 2010-04-27 18:24:15

+0

在string.Split可以使用選項RemoveEmptyEntries,但我不」相信Regex.Split有這個選擇。 – Brandi 2010-04-27 19:06:34

回答

1

由於split消除了分隔符,並在分隔符前後返回字符串,在這種情況下分隔符之前沒有字符,因此第一個值是空字符串。

+0

我看到了,謝謝 – dontoo 2010-04-27 18:41:20

0

C# Regex.Split - Subpattern returns empty strings。第一個答案有一個很好的解釋

你可以試試這個:

 string split_string = "-3243+324-32-2343"; 
    string[] nums = split_string.Split(new char[] { '-', '+' }, 
             StringSplitOptions.RemoveEmptyEntries); 
+0

我做了那樣的事情 – dontoo 2010-04-27 18:41:40