3 つのフィールドを持つ csv ファイルを渡そうとしています。最初の 2 つのフィールドは単純で、簡単に抽出できます。問題は、3 番目のフィールドが本質的に文字列であるため、フィールドを区切るために使用される「,」などの特殊文字を含めることができることです。2 つの ' " ' (二重引用符) の間に文字列フィールドを含めてみました。しかし、私の要件は、単純な文字列 (特殊文字なし) の場合、二重引用符なしで存在できることです。文字列の次の行も処理する必要があります。以下はcsv ファイルのサンプル。
123,本当,これはメモです
234,false,"これもメモです"
345、真、
456,真,上は白紙メモ
567,false,"これには、
初期化"
678,true,これには , が含まれています <--- このレコードは拒否する必要があります
789、偽、""
890,true,アバブも有効な白紙メモ
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashxで、正規表現形式の文字列をテストするための優れたツールも見つけました。
これまで、次のフォーマット文字列 ^(""(?:[^""]|"""") ""|[^,] ),(""(?:[^""]|""を使用してきました"") ""|[^,] )$
このフォーマット文字列の問題は、複数行を処理できず、開始二重引用符で終了二重引用符が欠落している文字列を拒否しないことです。
前もって感謝します。
助けてくれてありがとう。CSV のカスタム データを解析する必要があり、独自のカスタム パーサーを作成する必要がありました。すべてのフィールドを個別に解析し、正規表現文字列を小さなチャンクで使用しています。