能够解析类似下面的文本a,b,"a,2","123""456",,"AAA
BBB",1000
100,200,"3,000",400,500,600结果为
[1,1] = a
[1,2] = b
[1,3] = a,2
[1,4] = 123"456
[1,5] = AAA
BBB
[1,6] = 1000
[2,1] = 100
[2,2] = 200
[2,3] = 3,000
[2,4] = 400
[2,5] = 500
[2,6] = 600
BBB",1000
100,200,"3,000",400,500,600结果为
[1,1] = a
[1,2] = b
[1,3] = a,2
[1,4] = 123"456
[1,5] = AAA
BBB
[1,6] = 1000
[2,1] = 100
[2,2] = 200
[2,3] = 3,000
[2,4] = 400
[2,5] = 500
[2,6] = 600
解决方案 »
- ASP.NET MVC 上传文件
- 为什么 spring net (2.1.0.2)只能用log4net1.2.9.0 而不能用1.2.10.0
- 帮忙弄个算法
- 菜鸟请教 RequiredFieldValidator控件问题!!着急啊,大家们????!!!!!
- 请问如何清除VS2005中输出框中的内容啊?我在调试时有很多系统打出的内容,我想清除它以显示我自己的
- .Net的出现,不仅没能一统江湖,反而把天下搞得更乱了
- Microsoft.Web.UI.WebControls中treeview控件问题,求救!!先放20分,结贴再加100!!
- 如何把数据库集成到安装包中
- 任务并行库 Task 关联token 发出 OperationCanceledException 问题
- 40分,如何取得汉字的区位码?(等待中...)
- 一個關於DataGridView超難的問題,高手進~~~
- WEB 是潮流还是王道?
string[] split = {Enviroment.NewLine};
然后xxx.Split(split, 这个枚举忘了有只能提示 可以不空的数组移除)
(?:\"(?>[^\"]*(?:\"{2})?|\"(?<D>)|\"(?<-D>))*(?(D)(?!))\")|[^,\\n]*
随便写了一个 自己试了下没问题。 好久没来CSDN了
http://blog.csdn.net/greenery/archive/2008/08/28/2843773.aspx
string[] lines = Regex.Split(yourStr, @"(?<=,[^,""]*\r?)\n(?!$)");
for (int i = 1; i <= lines.Length; i++)
{
MatchCollection mc = Regex.Matches(lines[i - 1], @"""(?<o>[^,]*?)""(?=,|$)|""(?<o>[^""]*)""|(?<o>[^,""]+)");
for (int j = 1; j <= mc.Count; j++)
{
richTextBox2.Text += "[" + i + "," + j + "] = " + mc[j - 1].Groups["o"].Value + "\n";
}
}
输出
[1,1] = a
[1,2] = b
[1,3] = a,2
[1,4] = 123""456
[1,5] = AAA
BBB
[1,6] = 1000
[2,1] = 100
[2,2] = 200
[2,3] = 3,000
[2,4] = 400
[2,5] = 500
[2,6] = 600