반응형
- Exception in thread "main" java.util.regex.PattenSyntaxException: Dangling meta character -
해당 에러는 메타문자로 들어가는 일부 특수문자인
?, *, + ,( ,) ,[, ], {, } 와 같은 문자를 replace, replaceAll, split 등을
사용하여 치환 및 나누어주는 기준으로 사용할 때 발생하는 에러이다.
나같은 경우는 아래와 같은 에러가 발생하였다.
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.sequence(Pattern.java:2123)
at java.util.regex.Pattern.expr(Pattern.java:1996)
at java.util.regex.Pattern.compile(Pattern.java:1696)
at java.util.regex.Pattern.<init>(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at java.lang.String.replaceAll(String.java:2223)
at testProject.Test.main(Test.java:10)
해결방법은 매우 간단하다.
위에서 나열한 특수문자들은 역슬래쉬 두개 "\\" 이런식으로 붙여줘야 인식해서 에러가 발생을 안한다.
예제 1) 해결방안
String replaceTest1 = text1.replaceAll("\\?", "");
예제에서 사용한 물음표 말고도 위에서 나열한 특수문자들은
\\ 를 붙여서 사용하도록 하자.
반응형
댓글