日期:2014-05-18 浏览次数:21324 次
        public string[] SplitStr(string strdata)
        {
            ArrayList cells = new ArrayList();
            string str = "";
            bool flag = false;
            //strdata = strdata.Replace("\r", "");
            for (int i = 0; i < strdata.Length; i++)
            {
                char ch = strdata[i];
                if (ch == '\r')
                {
                    cells.Add(str);
                    str = "";
                }
                else if (ch == ',')
                {
                    if (!flag)
                    {
                        cells.Add(str);
                        str = "";
                    }
                    else
                        str += ch;
                }
                else if (ch == '\"')
                {
                    if ((++i < strdata.Length) && strdata[i] == '\"')
                    {
                        str += strdata[i];
                    }
                    else
                    {
                        --i;
                        flag = flag ? false : true;
                    }
                }
                else
                {
                    str += ch;
                }
            }
            return (string[])cells.ToArray(typeof(string));
        }
------解决方案--------------------
先把说明,就是带引号的SubString取出来存入,再把剩下的部分Split可以不/?
------解决方案--------------------
前几天一直不能上网,今天才搞定
这是处理单行数据的,多行循环处理一下
string str = "\"aaa,\",bbb,ccc"; 
MatchCollection mc = Regex.Matches(str, @"[^,]*""[^""]*""[^,]*|[^,]+");
foreach (Match m in mc)
{
    Console.WriteLine(m.Value);
}