将 CSV 行中不在引号之间的逗号数与 C# 匹配
本文关键字:匹配 之间 CSV | 更新日期: 2023-09-27 18:36:37
>我有一个CSV行,我需要计算该行中的列数。
某些列值包含逗号(在这种情况下,值将用引号括起来)
我需要一个正则表达式,它只匹配没有引号的逗号。
例如:
a,b,c
将匹配 2 个逗号
和行:
a,"b,c",d,"e,f"
将匹配 3 个逗号
谢谢
纳达夫。
我怀疑复杂的正则表达式是否会比简单的循环更好:
private static int CountCommas(String source, Char separator = ',') {
int result = 0;
Boolean inQuotation = false;
foreach (Char c in source)
if (c == '"')
inQuotation = !inQuotation;
else if ((c == separator) && !inQuotation)
result += 1;
return result;
}
测试
// 3
Console.Write(CountCommas("a, '"b,c'", d, '"e,f'""));