次のように定義された正規表現パターンがあります
var pattern = ",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))";
と私はフィールドを取得するために文字列のようないくつかのCSVを分割しようとしています
この正規表現で機能する文字列の例は次のとおりです。
_input[0] = ""; // expected single blank field
_input[1] = "A,B,C"; // expected three individual fields
_input[2] = "\"A,B\",C"; // expected two fields 'A,B' and C
_input[3] = "\"ABC\"\",\"Text with,\""; // expected two fields, 'ABC"', 'Text with,'
_input[4] = "\"\",ABC\",\"next_field\""; // expected two fields, '",ABC', 'next_field'
ただし、これは機能していません
_input[5] = "\"\"\",ABC\",\"next_field\"";
私は3つの分野を期待しています
'"', 'ABC"', 'next_field'
しかし、私は2つのフィールドを取得しています
'"",ABC', 'next_field'
誰かがこの正規表現を手伝ってもらえますか?
奇妙な部分は、2番目の列の値の最初と最後に引用符がなく、最後にあることだと思います。したがって、最初の列の値は空で、2番目の列はABCです。」
ありがとう、ロブ