拆分大文件,其中的行用分号分隔,拆分部分可以在引号中包含分号

本文关键字:包含 拆分部 分隔 文件 拆分 | 更新日期: 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);
            }
        }
    }
}