我需要将行拆分成一个大文件(200MB-5GB)中的部分,其中行看起来像这样
值 1;值 2;“值 3;额外”;值 4;“值 5;额外”
行需要用分号分隔。常规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);
}
}
}
}