繁体   English   中英

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

[英]Strange, regex.split Method matches one null element

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

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

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

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

C#Regex.Split - Subpattern返回空字符串 第一个答案有一个很好的解释

你可以试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM