c# - 正则表达式分割线(csv 文件)

标签 c# .net regex csv

我不擅长正则表达式。有人可以帮我写正则表达式吗?

我在读取 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/

相关文章:

c# - 使用 Decimal.TryParse 转换屏蔽货币字符串

c# - 在 C# MySqlCommand.CommandText 中使用 SQL 关键字

.net - 犀牛 mock : Re-assign a new result for a method on a stub

c# - 编程夜间数据传输的最佳方式,身份列高

python - 使用Python正则表达式替换字符串中的多个变量值

c# - DataSet Merge 和 AcceptChanges 以获得 DiffGram

c# - 在 ASP.NET MVC 中设置 Html.CheckBoxFor 保留关键字的 html 属性

javascript - 如何允许用户通过检查文本框中的某些规则来插入语法方程

.net - 下载和设置 dbpedia 转储

python - 正则表达式 : close most match