我需要解析 TSV 格式的文件(制表符分隔值)。我使用正则表达式将文件分解为每一行,但我找不到令人满意的正则表达式来解析每一行。
现在我已经提出了这个:
(?<g>("[^"]+")+|[^\t]+)
但如果该行中的某个项目有超过 2 个连续双引号,则该方法不起作用。
文件的格式如下:每个元素由表格分隔。如果项目包含制表符,则将其用双引号括起来。如果某个项目包含双引号,则该项目会加倍。但有时一个元素包含 4 个连续的双引号,上面的正则表达式会将元素拆分为 2 个不同的。
例子:
项目 1 确定“项目”“2”“确定”
被正确解析为 2 个元素:item1ok and 项目“2”确定(修剪掉不必要的引号后),但是:
项目1oK“项目”“”“2oK”
被解析为3个元素:item1ok, item and "2ok(再次修剪后)。
有谁知道如何使正则表达式适合这种情况?或者还有另一种解决方案可以简单地解析 TSV? (我在 C# 中执行此操作)。
你可以使用文本字段解析器 http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx。从技术上讲,这是一个 VB 程序集,但您甚至可以通过引用在 C# 中使用它Microsoft.VisualBasic.FileIO
集会。
上面链接中的示例甚至显示了在制表符分隔的文件上使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)