태그 보관물: 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)*(/)?>”, “”);  

import java.util.*;
public class Test
{
  public static void main(String[] args)
  {
    String data = ” <a href=”aaa.gif”>”;
    data += “Afdskjhasdkljhaskld” + “</a>”;
    System.out.println( data.replaceAll(“(?:<!–.*?(?:–.*?–\\s*)*.*?–>)|(?:<(?:[^>’\”]*|\”.*?\”|’.*?’)+>)”,””) );
  }
}