[오류노트] PatternSyntaxException: UnExpected internal error near index 1
2023. 9. 18. 10:26ㆍ오류노트/웹
public static String fileNameReplace(String value)
{
String returnValue = value;
returnValue = returnValue.replaceAll("/","");
returnValue = returnValue.replaceAll("\\",""); //여기서 에러발생
returnValue = returnValue.replaceAll("\\.\\.","");
returnValue = returnValue.replaceAll("&","");
}
첨부 파일을 다운로드 하는 로직 중
시큐어 코딩을 위해 파일 명에서 replace All 하는 부분에서 위와 같은 에러가 발생하였습니다.
에러는
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \
의 에러가 발생했는데.
위의 코드에서 원인은 returnValue.replaceAll("₩₩",""); 부분이였습니다.
자바 정규식에서는 ₩₩를 \로 인식합니다.
정규식에 사용되는 특수문자 (*,.| 등) 을 문자열로 replace 할때는 ₩₩. 와 같이 사용하여서
₩₩. => ₩. 와 같이 인식되게 하여 특수 문자를 인식할 수 있습니다.
이와 마찬가지로
returnValue.replaceAll("\\","");
위와 같은 코드는 \\를 ₩로 인식하기 때문에 에러가 발생합니다.
returnValue.replaceAll("\","");
실제로 위처럼 쓰면 ₩는 "를 문자열로 나타내게해 "가 안닫힌것처럼 인식되어서 에러가 발생하진 않지만 내부적으로
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \
위와같은 에러가 발생하는 듯 합니다.
이를 해결하기위하여
₩₩ -> ₩₩₩₩ ->
위처럼 변경해주면 (₩뒤를치환해라)(₩) 와 같은의미로 ₩₩로 인식하기 때문에 정상동작합니다.
returnValue.replaceAll("\\\\",""); // 문자열 ₩ 를 의미함
해당부분을 위처럼 수정해주시면 됩니다.
반응형
'오류노트 > 웹' 카테고리의 다른 글
[SPRING,JAVA] 맥 사파리 브라우저에서 첨부파일 한글 깨짐 현상 (0) | 2024.04.02 |
---|---|
wIndow 에서 일정시간 동작이 없을 시, 화면보호기 작동 시 tomcat 느려지는 현상(마우스를 움직이거나 엔터를 누르면 빨라짐) (0) | 2023.08.23 |
Microsoft Edge 에서 파일 다운로드 시 늦게 동작하는 현상(Loading bar 또는 알림창이 늦게 뜨는현상) (0) | 2023.08.23 |