본문 바로가기

Java & Html

JSP HTML 태그 제거

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


정규 표현식을 사용하여 HTML 태그 제거하기
웹 프로그래밍을 하다보면 DB에 저장된 내용중 일부분을 보여주어야 하는 경우가 있다. 예를 들어, 게시판의 내용중 일부를 보여준다거나 제목의 일부만 보여주어야 하는 경우가 그렇다. 이렇게 내용의 일부만 보여주어야 할 때 주의해야 할 점은 내용에 포함된 HTML 태그를 제거해주어야 한다는 점이다. 자바 1.4부터 정규 표현식 기능이 추가되었는데, 이를 사용하면 매우 간단하게 String에 포함된 HTML 태그를 제거할 수 있다. 본 팁에서는 이 정규 표현식을 사용해서 HTML 태그를 제거하는 방법을 설명하겠다.
먼저 HTML 태그는 < 로 시작해서 > 로 끝나고, 종료 태그의 경우는 </ 로 시작하거나 또는 />로 끝난다. 따라서, 다음과 같은 정규 표현식은 HTML 태그를 모두 포함하게 된다.
    <(/)?([a-zA-Z]*)(\s[a-zA-Z]*=[^>]*)?(\s)*(/)?>

자바 1.4부터 String.repalceAll(String regex, String replacemenet) 메소드를 제공하는데, 이 메소드는 문자열에서 regex의 정규 표현식에 일치하는 부분을 replacement로 취환해주는 기능을 제공한다. 따라서, 특정 문자열에 HTML 태그를 제거하려면 위의 정규 표현식을 다음과 같이 적용하면 된다.
    String text = "......";
    String textWithoutTag = text.replaceAll("<(/)?([a-zA-Z]*)(\s[a-zA-Z]*=[^>]*)?(\s)*(/)?>", "");

cf) 위와 같은 방법으로 태그를 제거할 경우 한글을 만나면 제거하지 못한다.
예 : <input text="한글" >