2014-11-18 2 views
1

Java로 정규 표현식을 사용하여 문자열을 분할하려고합니다. 문자열은 다음과 같습니다. {'tata','toto','titi'} 그러나 {}은 이전 자유주의 자의 순서를 설명하므로 잘 작동하지 않습니다.정규식을 사용하여 문자열 분할

나는이 결과를 얻기 위해 사용해야 무엇 정규식 :

tata 
toto 
titi 
+2

지금까지 가지고있는 코드를 게시 할 수 있습니까? –

+0

\ d {X}는 X 번 발생한다는 것을 정규식에서 의미합니다. 중괄호를 무시하는 방법 –

+3

기존 데이터 교환 형식을 구문 분석하려고합니까? 그렇다면 정규 표현식보다 더 나은 해결책이있을 수 있습니다. – FriendlyAgent

답변

2

는이 정규식을 사용할 수 있습니다.

1

당신은 정규식에 모든 문자의 특별한 의미를 비활성화 할 \를 사용할 수 있습니다.

String\ 그 자체가 특별한 의미를 가지므로, java의 문자열 리터럴에 정규 표현식을 직접 지정하는 경우 복제해야합니다. 따라서 "{something}"\\{something\\}"으로 대체하십시오.

1
String a = "{'tata','toto','titi'}" 
a = a.replace("{'", ""); // get rid of opening bracket and singlequote 
a = a.replace("'}", ""); // get rid of ending bracket and singlequote 
String[] b = a.split("','"); // split on commas surrounded by singlequotes 

이렇게하면 원하는 단어 배열을 얻을 수 있습니다. 나는 그것이 정규식이 아니지만, 어쨌든 옳은 일을해야한다고 생각한다.

String str = "{'tata','toto','titi'}"; 
String[] arr = str.split("[{},']+"); 
//=> tata, toto, titi 

{ 또는 } 내부 문자 클래스를 탈출 할 필요가 없습니다 :

+0

원래 문자열을 바꾸지 않고 완전히 바꾸는 것을 잊어 버렸습니다. 네가 누구든 나를 똑바로 세워 줘서 고마워. – DaaaahWhoosh

관련 문제