2013-09-05 1 views
1

정규식에이 문제가 있습니다.정규식으로이 문제가 해결되지 않습니다.

포함 된 파일에서 읽은 문자열이 있다고 가정합니다.

first_name, Hello, "test Drive" 

후, 난 그냥 split은 구분 기호로 ,을 사용하는 것입니다. 시스템은 큰 따옴표 안에 ,로 문자열을 읽을 때 나는

first_name, Hello, "test, Drive" 

내가

myString[0] = "first_name"; 
myString[1] = "Hello"; 
myString[2] = "\"test" 
myString[3] = "Drive\""; 

내 질문

을 얻을 내 문제가

myString[0] = "first_name"; 
myString[1] = "Hello"; 
myString[2] = "\"test Drive\""; 

를 얻을 수 있습니다

어떻게 0123을 사용하여 문자열을 나눌 것인가?은 왼쪽과 오른쪽에 "이 없다는 조건을 가진 구분 기호로 사용됩니다. 또는 훨씬 쉽게 해결할 수있는 해결 방법이 있습니까?

감사합니다.

+0

거기에 컨텍스트를 추출하기 위해 문맥 자유 언어를 사용하여 근본적인 문제가있다 민감한 데이터. 좋은 소식은 현대적인 정규 표현식을 사용하면 대부분의 작업을 수행 할 수 있지만 따옴표 내의 따옴표가 결국에는 가능한 한도에 도달한다는 사실을 지나치지 않을 것입니다. CSV 라이브러리에서와 같이 적절한 구문 분석기를 사용하는 것이 좋습니다. – caskey

+0

사용 된 문법에 대해보다 정확하고 형식적이어야합니다. 첫 번째 세그먼트에 따옴표를 사용할 수 있습니까? 그리고 초? 따옴표가 따옴표로 묶인 문자열에 추가 될 때 추가되는 것은 무엇입니까? 그들은 도망 간다? BNF 문법 defintion 유용 할 수 있습니다 ... – Aubin

+0

당신이 얻을 것이다 중복의 많은 구글 ''더블 쿼트 문자열 분할 정규식'에서 쉼표 건너 뛰기, 첫 페이지는 오직 stackoverflow 링크를 제공합니다 :) –

답변

2

CSV 파일로 작업하는 것 같습니다. 이미 CSV 라이브러리 중 하나 (opencsv 또는 supercsv 등)를 사용하는 것으로 간주 했습니까?

+0

그냥 평범한'* .txt' 파일. 어떤 라이브러리가 있는지 확인해 보겠습니다. –

+0

해당 파일에 다음과 같은 특정 형식이 포함되어있는 경우 : "각 행에 쉼표로 구분 된 세 개의 필드가 있으며 마지막 필드는 인용 부호가 붙습니다 문자열 "이면 CSV 파일 = D로 간주됩니다. – justhalf

0

당신이 분할 할 위치를 그때까지 명확한 정규식 한계를 알고 있다면, 다음 아래 작동합니다 당신

 String test = "first_name, Hello, \"test, Drive\""; 


     String[] tests = test.split(", ", 3); 

     System.out.println("1 " + tests[0]); 
     System.out.println("1 " + tests[1]); 
     System.out.println("1 " + tests[2]); 

output :- 
    1 first_name 
    2 Hello 
    3 "test,Drive" 

당신이 한계에 다음 입력 문자열 형식 아래에서해야 잘 모릅니다 경우

어디 당신이 할 수있는 경우 전용 (,) 공간이없는이있는 qutoes 내에서 문자열을 포맷 .. 하나의 쉼표 (,)과 공간()와 다른 텍스트 구분 기호가

String test = "first_name, Hello, \"test,Drive\""; 


     String[] tests = test.split(", "); 

     System.out.println("1 " + tests[0]); 
     System.out.println("1 " + tests[1]); 
     System.out.println("1 " + tests[2]) 

output :- 
     1 first_name 
     2 Hello 
     3 "test,Drive" 
관련 문제