먼저 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*)*.*?–>)|(?:<(?:[^>’\”]*|\”.*?\”|’.*?’)+>)”,””) );
}
}