2009-06-24 4 views
0

깔끔하게 정리 된, 탭으로 구분 된 "CSV"가 정리하려고합니다.정규 표현식을 사용하여 유효한 CSV 만들기

모든 입력란을 인용하고 싶습니다. 현재는 일부만 있습니다. 탭을 통해 탭을 작성하고 필요한 경우 따옴표를 추가하려고합니다.

이 RegEx를 사용하면 모든 탭을 볼 수 있습니다.

\t 

이 정규식은 나에게 "로 끝나지 않는 탭을 제공 할 것입니다.

\t(?!") 

"으로 시작하지 않는 탭은 어떻게 구합니까?

+0

당신은 아마 "CSV"가 아닌 "CVS"를 의미한다. – ephemient

+0

정규 표현식은 모든 언어에서 동일하게 구현되지 않습니다. 어떤 것을 사용하고 있습니까? – Oorang

+0

누군가가 "이제는 두 가지 문제가 있습니다."라고 말할 때까지 얼마나 걸릴까요? –

답변

2

사용 부정적인 lookbehind : 그것은 한 번 발생 인 경우에 이러한 종류의 문제에 대한 일반적 (?<!")\t

3

는, 내가 원하는 출력을 생성하는 탁월한 기능 또는 다른 응용 프로그램 (? SSIS T-SQL)를 사용합니다.

일반적으로 범용 정규 표현식은 기묘한 예외로 실행되며 올바르게 작성하는 것은 시간이 오래 걸리고 정규 표현식에서 인식하지 못했던 누락 된 그룹이 자주 발생합니다.

이 문제가 정기적으로 발생하면 소스에서 문제를 해결하고 특별한 유틸리티 프로그램을 만들어보십시오.

+0

나는 이상적인 해결책이 무엇인지 동의합니다. CSV 소스에서 수정 될 수 있습니다. 불행히도 내가 제어 할 수 없습니다.이 프로세스는 사용자가이 불쾌한 파일을 업로드하고 마술로 가져올 것으로 예상하기 때문에 자동화됩니다. – Chap

+0

정규 표현식이 가장 좋은 해결책은 사용자가 "창의력을 발휘할 때까지"입니다. 정규 표현식을 오류없이 실행할 수는 있지만 여전히 출력이 깨져 버릴 수 있습니다. – hova

1

이런 식으로 나는 보통 데이터를 정리하기 위해 약간의 프로그램을 작성한다. 그런 식으로 나는 또한 실제로 실행 후 제대로 변환되었는지 확인하기 위해 몇 가지 유효성 검사를 추가 할 수있다. 나는 정규식에 대해서는 아무것도 없다. 그러나 종종 내 경우에는 작은 프로그램을 작성하는 것보다 정규식을 계산하는 것이 더 오래 걸린다. :)

편집 : 그것에 대해 생각 와서는 주요 동기는 더 재미가 있다는 것이다 - 나 적어도 :)

+0

나도 일반적으로 새로운 언어로 시도 할 기회를 사용합니다. 파이썬, 스칼라, 노드 등 공부하고 있어요. – opensas

관련 문제