我正在寻找一种方法,在.NET中,分割字符串,同时忽略引号(或另一个分隔符)内的分割字符.(如果拆分分隔符是逗号,则此功能将与典型的CSV解析器的功能相匹配.)我不确定为什么没有内置此功能String.Split().
您可以使用正则表达式.例:
string test = @"this,i""s,a"",test";
string[] parts =
Regex.Matches(test, @"(""[^""]*""|[^,])+")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
foreach (string s in parts) Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)
输出:
this
i"s,a"
test
Run Code Online (Sandbox Code Playgroud)