2016-12-28 17 views
0

私はRegexで私の運を試してきましたが、私の理解は最善ではないようです。区切り文字の間の文字列を置き換えます

問題 私には第三者から.csvファイルが寄せられています。私はそれを編集することはできませんが、アプリケーションにデータを読み込む必要があります。

ファイルには常に12列あります。しかし、時にはそれはこのようになります:

テキスト、テキスト、テキスト、 "テキストをカンマ、で"

テキスト、テキスト、テキスト、テキスト....

テキスト、テキスト、テキスト、 "カンマ付きテキスト"、 "カンマ付きテキスト"、テキスト...

私がこれを行う必要があるのは、 " - "の間にあるすべてのカンマを置き換えます。

助けていただけたら幸いです! [?C#で任意のCSVリーダー/ライターのライブラリがあります]

+5

のためにこれはトリックを行う可能性があります(http://stackoverflow.com/q/1941392/669576) –

+0

ジョニー - ませんでした私の旅行のそのポストを見てください。私はそれを見て、それは私が必要なものだと思われる。ありがとう。 – Lift

答えて

4

あなたは

foreach(Match match in Regex.Matches(YourCSV, "\"([^\"]*)\"")) 
    if(match.ToString().Contains(",")) 
     YourCSV = YourCSV.Replace(match.ToString(), match.ToString().Replace(",", "-")); 
+0

助けられましたが、依然として正しく働いていません。おそらく私の質問の記述で私の部分に不具合があります。コンマの間にカンマがある場合、文字列のその部分のどこにでも置くことができます。 – Lift

+0

より簡単です。置き換え中の '' \ ""、 " - \" "'を ""、 "、" - "'に置き換えてください。 –

+0

完全に作業しました。ありがとうございました! – Lift

関連する問題