我不擅长正则表达式。有人可以帮我写正则表达式吗?
我在读取 csv 文件时可能有这样的值。
"Artist,Name",Album,12-SCS "val""u,e1",value2,value3
输出:
Artist,Name Album 12-SCS Val"u,e1 Value2 Value3
更新: 我喜欢使用 Oledb 提供程序的想法。我们在网页上确实有文件上传控件,我使用流阅读器读取文件的内容,而没有在文件系统上实际保存文件。有什么方法可以让我使用 Oledb 提供程序,因为我们需要在连接字符串中指定文件名,而在我的情况下,我没有将文件保存在文件系统上。
最佳答案
只需添加我今天早上处理的解决方案。
var regex = new Regex("(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)");
foreach (Match m in regex.Matches("<-- input line -->"))
{
var s = m.Value;
}
如您所见,您需要每行 调用regex.Matches()。然后它将返回一个 MatchCollection,其中包含与列相同数量的项目。显然,每个匹配项的 Value 属性是解析后的值。
这仍在进行中,但它很乐意解析 CSV 字符串,例如:
2,3.03,"Hello, my name is ""Joshua""",A,B,C,,,D
关于c# - 正则表达式分割线(csv 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3268622/