Java로 정규 표현식을 사용하여 문자열을 분할하려고합니다. 문자열은 다음과 같습니다. {'tata','toto','titi'}
그러나 {}
은 이전 자유주의 자의 순서를 설명하므로 잘 작동하지 않습니다.정규식을 사용하여 문자열 분할
나는이 결과를 얻기 위해 사용해야 무엇 정규식 :
tata
toto
titi
Java로 정규 표현식을 사용하여 문자열을 분할하려고합니다. 문자열은 다음과 같습니다. {'tata','toto','titi'}
그러나 {}
은 이전 자유주의 자의 순서를 설명하므로 잘 작동하지 않습니다.정규식을 사용하여 문자열 분할
나는이 결과를 얻기 위해 사용해야 무엇 정규식 :
tata
toto
titi
는이 정규식을 사용할 수 있습니다.
당신은 정규식에 모든 문자의 특별한 의미를 비활성화 할 \
를 사용할 수 있습니다.
String
에 \
그 자체가 특별한 의미를 가지므로, java의 문자열 리터럴에 정규 표현식을 직접 지정하는 경우 복제해야합니다. 따라서 "{something}"
을 \\{something\\}"
으로 대체하십시오.
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
{
또는 }
내부 문자 클래스를 탈출 할 필요가 없습니다 :
원래 문자열을 바꾸지 않고 완전히 바꾸는 것을 잊어 버렸습니다. 네가 누구든 나를 똑바로 세워 줘서 고마워. – DaaaahWhoosh
지금까지 가지고있는 코드를 게시 할 수 있습니까? –
\ d {X}는 X 번 발생한다는 것을 정규식에서 의미합니다. 중괄호를 무시하는 방법 –
기존 데이터 교환 형식을 구문 분석하려고합니까? 그렇다면 정규 표현식보다 더 나은 해결책이있을 수 있습니다. – FriendlyAgent