2016-12-28 3 views
0

Regex와 함께 내 행운을 시험해 보았습니다. 그러나 내 이해가 최선이 아닌 것 같습니다.구분 기호 사이에 문자열을 바꿉니다

문제 제 3자가 나에게 제공 한 .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

관련 문제