2012-09-28 4 views
0

다음 텍스트 형식을 사용해야합니다. 템플릿을 사용하여 콘텐츠를 추출하고 싶습니다.RegEx 표현식, 문자열 조작

값은 {ABC는 XYZ는 ...} | 메시지 {이다 테스트 메시지}

내가 문자열 이상 발생하면 내가 해석하지 않고 '가치'와 '메시지'의 내용을 추출하고 싶습니다 Java에서 전체 문자열.

정규식으로 가능합니까? 형식 나던 변화를 가정하여 문자열은 항상 당신이 언급 한 형식의 경우, 아래의 코드가 작동

+0

"예"는 아마도 예상 한 대답이 아닙니다. 제쳐두고 농담은, 당신이 기대할 수있는 유일한 형식의 텍스트 형식입니까? –

+0

은 값과 메시지로 항상 뒤에 오는 중괄호입니까 ?? – PermGenError

+0

나는 당신이 [당신이 할 수있는 경우에 정규식없이 그것을 분석하십시오] 추천 할 것입니다 (http://programmers.stackexchange.com/questions/10998/what-does-the-jamie-zawinskis-quotation-about-regular-expressions-mean) . Jamie Zawinski는 다음과 같이 말했습니다. "어떤 사람들은 문제에 직면했을 때 '알고 있습니다. 정규 표현식을 사용합니다.'라고 생각합니다. 이제는 두 가지 문제가 있습니다. " – Kiril

답변

1

예이 정규 표현식 가능합니다.

http://rubular.com/r/R8WIonv6Oj < - 예를 보려면이 링크를 클릭하십시오.

Value\{(.*)\}\|Message\{(.*)\} 

중괄호 사이에있는 일치하는 두 개의 그룹이 있습니다. 그러나 정규 표현식을 사용하지 않고도 쉽게이 작업을 수행 할 수 있습니다.

0

...

String s = "Value{ABC,XYZ...}|Message{This is test message}"; 
System.out.println(s.split("value")[0].split("\\{")[1].split("}")[0]); //prints ABC,XYZ... 
System.out.println(s.split("Message")[1].split("\\{")[1].split("}")[0]); //prints This is test message