기초지식
[JAVA] java.util.regex.PatternSyntaxException: Unclosed group near index 1 에러 해결
광진구뚝배기
2022. 5. 2. 14:10
▏에러 로그
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