奇怪的是,regex.split方法匹配一个null元素

时间:2010-04-27 18:21:06

标签: c# .net regex split

    Regex rx = new Regex(@"[+-]");
    string[] substrings = rx.Split(expression);

expression =“ - 9a3dcbh-3bca-4ab4cf-3hc”//这是输入字符串 我想在+或 - 之间拆分该字符串。 我的VS调试器显示如下的子串数组: substrings [0] = null // ???为什么 子串[1] = 9a3dcbh 子串[2] = 3bca 子串[3] = 4ab4cf 子串[4] = 3hc

为什么arry的第一个元素为null,是因为我匹配+ - ,而我的输入字符串中没有+?

2 个答案:

答案 0 :(得分:1)

因为split删除了分隔符,并在分隔符之前和之后返回字符串,在这种情况下,分隔符之前没有字符,因此第一个值是空字符串。

答案 1 :(得分:0)

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

你可以试试这个:

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