プログラムでちょっとした、ほんの数行の.csvをパースする必要があったので、
横着して
string[] infoOneArr = line.Split(",");
とやったのですが・・・
山田太郎,"ABC Inc,Japan",2,研究,
ありましたよ"ABC Inc,Japan"が。ほんの数行の中に。
""で囲ってあって中にカンマが入っているやつ。
ガッツリと.csvを扱うのならパーサー用意するとか考えるのですが、
ちょっとした.csvなだけになんとなく躊躇してしまいます。曰く
「何とかインチキできんのか?」
答え:こんな感じでどうでしょう?
using System.Text.RegularExpressions;
:
Regex reg = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
string[] infoOneArr = reg.Split(line); // ""で囲まれたものは分割しない
for (int n = 0; n < infoOneArr.Length; ++n)
infoOneArr[n] = infoOneArr[n].Trim('"'); // 先頭と最後尾の '"' を削除