正则表达式分割字符串但是不分割字符串中引号中间的数据,处理CSV文件必备!!

时间:2020-12-15 18:48:20

如果的数据是这样

11211,210161,"SHRINK FILM, 23 W X .0015MIL",49.95,RM1 ,1

需要处理成如下格式的数据:

11211

210161

"SHRINK FILM, 23 W X .0015MIL"

49.95

RM1

1

这样在.net  中Split方法就不能使用了,就需要借助正则表达式来完成,可以这么写:

 string str="11211,210161,\"SHRINK FILM, 23 W X .0015MIL\",49.95,RM1 ,1";        
string[] result = Regex.Split(str, "(?<!\"[^,]+),(?![^,]+\")");
foreach (string s in result)
{
    Console.WriteLine(s);
}
Console.ReadKey();

输出结果如下:

正则表达式分割字符串但是不分割字符串中引号中间的数据,处理CSV文件必备!!