日期:2014-05-18 浏览次数:21321 次
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);
}