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 |
댓글