我需要将行拆分成大文件(200MB-5GB)中的部分,其中的行看起来像这样
值1;值2; “值3;额外”; VALUE4; “值5;额外的”
行需要用分号分割。常规String.Split
不起作用,因为分号可以在引号内。
我认为正则表达式在这里效果最好,特别是如果文件有数百万行。我感谢任何可以帮助我拆分的指导或代码。
更新
我想在上面的示例行中看到的结果是
value1
value2
"value3;extra"
value4
"value5;extra"
谢谢
答案 0 :(得分: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);
}
}
}
}