C#で ""(ダブルクォーテーション)で囲まれた含まれたCSVをパースする
プログラムでちょっとした、ほんの数行の.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('"'); // 先頭と最後尾の '"' を削除
Author And Source
この問題について(C#で ""(ダブルクォーテーション)で囲まれた含まれたCSVをパースする), 我々は、より多くの情報をここで見つけました https://qiita.com/ELIXIR/items/ad4f998facfdeaa4ba14著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .