개발관련/뻘팁-작업노트

java - java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0

xephysis 2021. 5. 10. 18:21

배경

java.util.regex.PatternSyntaxException: Dangling meta character '*' near index  

재현

spring data mongodb 이슈는 아니고 java regex 자체

targetValue 에 '*' 인 문자열이 들어가 있으면 문제 발생

Criteria searchTitleCriteria = new Criteria().where("targetField").regex(targetValue);

Pattern.compile(someString) 에서 터짐

원인

regex meta character 이 들어가 있어서 문제 발생

해결

Pattern.quote 로 감싸놓음

( \Q & \E)

Criteria searchTitleCriteria = new Criteria().where("targetField").regex(Pattern.quote(targetValue));

출처

www.baeldung.com/java-regexp-escape-char