我正在尝试使用以下正则表达式拆分CSV输入:

(?:^|,)(?=[^"]|(")?)"?((?(1)[^"]*|[^,"]*))"?(?=,|$)


数据为,a,b,c的行/行导致3个匹配项:



,b
,C


我丢失/丢失了,a,我不知道需要更改什么。

似乎可以使用Python选项工作:
https://regex101.com/r/kW3pQ6/1

任何想法如何为.NET修复它?

这可能会有所帮助:

(?:^|,)(?=[^"]|(")?)"?((?(1)[^"]*|[^,"]*))"?(?=,|$)




Debuggex Demo

最佳答案

为什么不使用Csv NuGet软件包,该软件包考虑了您现在要解决的CSV解析的许多细微差别,以及您尚不知道需要解决的其他细微差别:-)

CsvHelper是一个非常流行的OS软件包:
https://www.nuget.org/packages/CsvHelper
https://github.com/JoshClose/CsvHelper

10-01 00:13