data_string.replaceAll("<script([^'\"]|\"[^\"]*\"|'[^']*')*?</script>", "");


해당 구문을 이용하여 문자열에 포함된 스크립트 부분을 삭제하려했다.


원래 저 정규식은 자바스크립트에서 많이들 쓰는 정규식이라 

그대로 자바로 바꿨을 뿐인데 아래와 같은 에러가 뿜뿜.



정규식을 처리하기 위해 재기호출을 미친듯이 하다가 그냥 넘쳐버린듯 하다.


다시 열심히 검색해보니,


Pattern과 Matcher 를 이용하는 방법을 찾을수 있었다.



                                                // 스크립트 제거

Pattern SCRIPTS = Pattern.compile("<script([^'\"]|\"[^\"]*\"|'[^']*')*?</script>",Pattern.DOTALL);

Matcher m;

m = SCRIPTS.matcher(data_string);

data_string = m.replaceAll("");




위와 같이 응용후 에러가 해결되었다.



신고

+ Recent posts