본문 바로가기
Language/Java

[JAVA] java.util.regex.PatternSyntaxException: Unclosed group near index 1 에러 해결

by 광진구뚝배기 2022. 5. 2.

에러 로그

 

java.util.regex.PatternSyntaxException: Unclosed group near index 1

 

java replaceAll 사용시 위와 같은 에러가 날 때가 있다.

 

 

 

상황

 

이 오류는 괄호를 치환 하고자 할 때 발생하는 오류다.

치환하려고 작성한 문자 괄호를 문자로 인식하지 않고, 하나의 수식으로 인식하기 때문에 Unclosed group near index 이런 에러를 뱉는것이다.

 

 

 

해결방법

 

따라서, 소괄호, 중괄호, 대괄호, ^ 는 앞에 \\를 붙여주어야한다.

 

나의 경우 문자열에 있는 소괄호를 뒤집어야 했다.   ex )  "(" -> ")"  /  ")" -> "(" 

처음에는 나도 이 규칙을 몰라 에러가 났다.

u = u.replaceAll("(", "1");
u = u.replaceAll(")", "2");
u = u.replaceAll("1", ")");
u = u.replaceAll("2", "(");

 

수정 코드

u = u.replaceAll("\\(", "1");
u = u.replaceAll("\\)", "2");
u = u.replaceAll("1", ")");
u = u.replaceAll("2", "(");

 

 



 

 

 

 

참고자료

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=innerlog&logNo=220129375147

 

 

 

 

 

반응형

댓글