拆分大文件,其中的行用分号分隔,拆分部分可以在引号中包含分号
本文关键字:包含 拆分部 分隔 文件 拆分 | 更新日期: 2023-09-27 18:27:16
我需要在一个大文件(200MB-5GB)中将行拆分为多个部分,其中的行看起来像
value1;value2;"value3;额外";value4;"value5;额外"
行需要用分号分隔。常规String.Split
不起作用,因为分号可以在引号内。
我认为正则表达式在这里最有效,尤其是当文件有数百万行的时候。我很感激任何有助于我分手的指导或代码。
更新:
我想看到的上述样品线的结果是
value1
value2
"value3;extra"
value4
"value5;extra"
感谢
添加对Microsoft.VisualBasic
的引用并使用TextFieldParser
类:
using System;
using System.IO;
using Microsoft.VisualBasic.FileIO;
class Program
{
static void Main(string[] args)
{
using(var input = File.OpenRead("input.txt"))
using(var tfp = new TextFieldParser(input))
{
tfp.SetDelimiters(new string[] { ";" });
tfp.HasFieldsEnclosedInQuotes = true;
var fields = tfp.ReadFields();
foreach (var field in fields)
{
Console.WriteLine(field);
}
}
}
}