我正在使用 ParseCSV 函数来解析 C# 中的 CSV 文件。
CSV 文件的最后一列包含:NM 120922C00002500(后面有很多空格)
在 ParseCSV 函数中,我传递了一个输入字符串,作为读取 CSV 文件的结果。
输入字符串的一部分是:
"1",000066,"07/30/2012","53193315D4","B","99AAXXPB0",",","","","CALL NM 09/22/12 00002.500 ","MG", 100.00,1.050000,310,32550.00,25530.70,360,37800.00,30477.78,"C",2.50000,09/22/2012,"NM"," NM 120922C00002500 ".
在 CSVParse 函数中,正在执行以下操作:
string csvParsingRegularExpressionOld = Prana.Global.ConfigurationHelper.Instance.GetAppSettingValueByKey("CSVParsingRegularExpression");
string csvParsingRegularExpression = csvParsingRegularExpressionOld.Replace("\\\\", "\\");
在 csvParsingRegularExpression 值出来为:
((?<field>[^",\r\n]*)|"(?<field>([^"]|"")*)")(,|(?<rowbreak>\r\n|\n|$))
我跟进
Regex re = new Regex(csvParsingRegularExpression);
MatchCollection mc = re.Matches(inputString);
foreach (Match m in mc)
{
field = m.Result("${field}").Replace("\"\"", "\"");
}
但是当涉及到最后一个值“NM 120922C00002500”时,这里的字段包含空字符串。这个问题的可能解决方案是什么?
我不知道 CSV 文件或正则表达式方法“匹配”是否有问题。