C# コードで解析する必要がある大きな文字列があります (実際には CSV ファイルではありませんが、CSV ファイルと呼びましょう)。解析プロセスの最初のステップでは、オブジェクトを使用してファイルを処理するまで呼び出す
だけで、ファイルを個々の行に分割します。ただし、特定の行には、改行が埋め込まれた引用符で囲まれた (一重引用符で囲まれた) リテラルが含まれている場合があります。これらの改行を見つけて、ファイルを行の配列に分割するまで、それらを一時的に他の種類のトークンまたはエスケープ シーケンスに変換する必要があります。その後、それらを元に戻すことができます。StreamReader
ReadLine
入力データの例:
1,2,10,99,'Some text without a newline', true, false, 90
2,1,11,98,'This text has an embedded newline
and continues here', true, true, 90
これを行うために必要なすべての C# コードをstring.IndexOf
、引用されたセクションを見つけて改行を探すために書くことができましたが、正規表現の方が良い選択かもしれないと考えています (つまり、2 つの問題があります) 。