본문 바로가기
IT/Java

2021-01-13-replaceAll-No-group-2-에러

by 봉즙 2023. 2. 27.

layout : post
title : "replaceAll no Group 2 에러"

category : Java

replaceAll 메서드에 $ 사용시 발생한다.

에러는 다음과 같다.

Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 2
    at java.util.regex.Matcher.start(Matcher.java:374)
    at java.util.regex.Matcher.appendReplacement(Matcher.java:831)
    at java.util.regex.Matcher.replaceAll(Matcher.java:906)
    at java.lang.String.replaceAll(String.java:2162)

오류는 달러 기호가 포함되어 있어 발생한다.

Note that backslashes () and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see Matcher.replaceAll. Use Matcher.quoteReplacement(java.lang.String) to suppress the special meaning of these characters, if desired.

    content = content.replaceAll(
            Regexp.MESSAGE_PREFIX, quoteReplacement(arr[i]));
}

quoteReplacement 사용하여 처리하게 되면 에러가 발생하지 않는다.

'IT > Java' 카테고리의 다른 글

2023-01-26-Introspection  (0) 2023.02.27
2021-10-13-SingleTon  (0) 2023.02.27
폴더 zip로 압축  (0) 2020.08.05
Arrays.asList()  (0) 2020.07.28
Thread Safe  (0) 2020.07.08

댓글