c# regex split csv with quotes

您好,您的问题是如何使用 C# 中的正则表达式(Regex)将带引号的 CSV 文件进行分割。

以下是一个使用正则表达式的示例代码,可以帮助您实现此目标:

string csv = "John,Doe,123 Main St,\"Anytown, USA\",55555";
string pattern = ",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))";

string[] result = Regex.Split(csv, pattern);

foreach (string s in result)
{
    Console.WriteLine(s);
}

这个代码会将上面的 csv 字符串按照逗号进行分割,但是只在逗号后面的引号闭合之后的逗号进行分割,即避免了将逗号视为分隔符。这种方式可以解决引号内部有逗号的情况。

正则表达式的含义是,查找所有逗号,并且在逗号后面必须跟着偶数个双引号。这意味着所有在偶数个引号内的逗号都会被忽略,只有在奇数个引号之后的逗号才会被视为分隔符。

希望这个代码能够解决您的问题。如果您还有其他问题,欢迎继续提问。

本内容由AI助手生成,请问对您是否有帮助
为你推荐