2011-01-07 4 views
0

나는 다음과 같은 형식의 문자열을 "\\(([^\\}]+)\\)$" 패턴.자바 정규식 도움

하지만 대괄호 안에있는 마지막 콘텐츠 만 변경할 수는 없습니다.

난 그냥 마지막 괄호의 내용을 대체 할
"someString(modified)"; 

는, 모든 문자가 마지막으로 브래킷의 뿅 나타날 수 있습니다 위의 정규식은 나에게 출력을 제공합니다.

도움을 주시면 감사하겠습니다.

+0

대체 할 코드는 무엇입니까? – Eric

답변

0
String resultString = subjectString.replaceAll(
    "(?x)\\( # match opening parenthesis\n" + 
    "[^()]* # match 0 or more characters except parentheses\n" + 
    "\\)  # match closing parenthesis\n" + 
    "$  # match the end of the string", "(modified)"); 

지금까지는 닫는 괄호와 문자열 끝 사이에 공백이 허용되지 않았습니다. 이 케이스도 처리해야하는 경우 앞에 \\s*을 삽입 할 수 있습니다.

+0

덕분에 완벽하게 작동했습니다. – user234194

1
yourString.replaceAll("(.+\\(.+\\)\\()[^\\}]+(\\)$)", "$1modified$2") 
2

표현에 오타가 있다고 생각합니다. 중괄호를 보통의 것으로 바꾸면 좋을 것 같습니다.