2013-03-26 2 views
1

괄호 안에 단일 문자 인 모든 것을 제거하고 싶습니다. 예를 들어, "나는 (a) 부분이고 (aaa)"라는 문자열에서 원하는 결과는 "나는 부분적이며 아아 (aaa)"가 아니며, 두 번째 괄호 쌍은 길기 때문에 보관됩니다. Java로 어떻게 이것을 할 수 있습니까? 나는 다음을 시도했지만 그것은 아무것도 일치하지 않는다!자바 문자열에서 빈/단일 문자 괄호를 제거하는 방법

String text = "the meaning of 5 U.S.C. 552(a)(6)(B) and Section 1.16(b) ."; 
text.replaceAll("\\(.?\\)", ""); // should return "the meaning of 5 U.S.C. 552 and Section 1.16 ." but doesn't! 

나는 문제가 나는 백 슬래시와 괄호 문자를 탈출하고 어떻게 생각하지만, 나는 그런 "\\ (.? \\)"아무 소용이 같은 수많은 변화를 시도했다. 또한, 그들은 온라인 정규 표현식 사이트에서 작동하는 것 같아서, 나는 틀릴 수도있는 것을 완전히 잃어 버렸습니다.

+4

그래서 현재 * 어떤 * 않습니다 * 반환합니까? 현재 return 값을 무시하고 있음을 주목하십시오 - replaceAll을 호출하는 것만으로 * 기존 * 문자열을 변경하지 않고 대체 문자열을 새로운 문자열로 반환합니다. 그것이 문제일까요? –

+0

[Java : string에서 모든 문자 발생 제거] (http://stackoverflow.com/questions/4576352/java-remove-all-occurances-of-char-from-string) – fglez

답변

6

당신의 정규식은 괜찮아 보입니다. 결과를 변수에 할당하는 것을 잊고 있습니까?

text = text.replaceAll("\\(.?\\)", ""); 
관련 문제