2011-04-05 2 views
0

내가 문자열이있는 경우 정규 표현식 매치정규 표현식 : 따옴표 안에 따옴표

예 : 유형 다음을 수행 할 필요가 - 내가 을 추출 할 some "This is "sample" data" example

을 샘플 "데이터"에 "입니다" 위의 문자열의. keyword = "This is "blood" sample" AND name = "some text" - 나에게 나에게 원하는 결과

상세 정보

내가 같은 문자열을 반환 할 수 있습니다 정규 표현식을 전해 주 시겠어요. 키워드를 추출해야합니다. "이"혈액 "샘플" name = "some text" 두 개의 별도 문자열로 추출합니다.

당신은 내가 정규 표현식으로 (keywords|name|title) = (.*?(\\\".*\\\").*?)을 사용하는 것은

이런 종류의 정규 표현식을 제안 시겠어요 예상대로 작동하지 않습니다. 그것은 나로하여 전체 문자열을 반환합니다.

미리 감사드립니다.

+1

1) 추출을 위해 어떤 도구를 사용하고 있습니까? 따옴표와 같은 것에 대한 자세한 내용은 도구마다 다를 수 있습니다. 2) 해당 문자열을 정확히 일치 시키길 원합니까 아니면 다른 인용 된 데이터가 포함 된 인용 된 데이터입니까? 나는 "a"b "c"와 일치시키고 싶습니까? –

+0

관심있는 그룹이 큰 따옴표로 묶여 있습니까? 이 따옴표는 큰 따옴표로 묶을 수 있습니까? –

+1

몇 가지 예를 더 제공 할 수 있습니까? 정확하고 부정확 한 일치. – aioobe

답변

2

당신이 뭘하고 있는지 확실하지 않으므로 추측하여 차이를 채울 것입니다.

Pattern p = Pattern.compile(".*?(\\\".*\\\").*?"); 
Matcher m = p.matcher("some \"This is \"sample\" data\" example"); 

if (m.matches()) 
    System.out.println(m.group(1)); 

출력 :

"This is "sample" data" 

일부 발언 :

    a b "c d "e f "g h" i j" k l" m n에 일치해야 무엇
  • ?
  • a "b" c"은 무엇이 일치해야합니까?
  • 열기 및 닫기 괄호로 및 "을 처리하려면 정규 표현식을 사용할 수 없습니다.
+0

왜 백 슬래시가 3 개 필요합니까? 나는 비슷한 문제에 대해 작업하고 있고 2는 우리가 필요로한다고 생각했다. –

+0

세 번째 백 슬래쉬는 문자열 리터럴을 종료하는 것을 피하기위한 것이다. – aioobe