0

我需要将行拆分成一个大文件(200MB-5GB)中的部分,其中行看起来像这样

值 1;值 2;“值 3;额外”;值 4;“值 5;额外”

行需要用分号分隔。常规String.Split不起作用,因为分号可以在引号内。

我认为正则表达式在这里效果最好,特别是如果文件有数百万行。我感谢任何可以帮助我拆分的指导或代码。

更新:

对于上面的示例行,我想看到的结果是

value1
value2
"value3;extra"
value4
"value5;extra"

谢谢

4

1 回答 1

4

添加对类的引用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);
            }
        }
    }
}
于 2013-08-12T13:32:25.340 回答