본문 바로가기

공부방/Java

replaceAll 에서 Illegal group reference 처리

replaceAll 에서 치환할 값에 쿼트(")가 들어있으면

Illegal group reference 에러가 발생한다.

이때에는 java.util.regex.Matcher 내에 quoteReplacement 메소드로 치환할 값을 

바꿔주면 된다.


                

                String replaceVal= "<?=$cfg[\"member\"][\"mid\"]?>";


String baseVal = "ocmTagParseURLGetParameter(window.location.href, $KEYIN_VALUE$)";


Matcher.quoteReplacement(replaceVal);


System.out.println(baseVal.replaceAll("[$]KEYIN_VALUE[$]", "'"+Matcher.quoteReplacement(replaceVal)+"'"));