개발/자바
자바 html 태그 제거 메소드
피터JK
2025. 1. 15. 16:15
728x90
Java에서 HTML 태그를 제거하려면 정규식을 사용할 수 있습니다.
예를 들어, HTML 문자열에서 모든 태그를 제거하려면 replaceAll() 메서드를 활용할 수 있습니다.
public class HtmlUtil {
/**
* HTML 문자열에서 <br>, <p> 태그를 개행으로 치환하고
* 나머지 태그와 HTML 엔티티( 등)를 제거합니다.
*
* @param htmlString HTML 문자열
* @return 가공된 텍스트
*/
public static String stripHtml(String htmlString) {
if (htmlString == null) {
return "";
}
// 1. <br> 태그를 개행으로 변환
String result = htmlString.replaceAll("<br\\s*/?>", "\n");
// 2. <p> 태그를 개행으로 변환 (속성 포함 처리)
result = result.replaceAll("<p[^>]*>", "\n");
// 3. 나머지 HTML 태그 제거
result = result.replaceAll("<[^>]*>", "");
// 4. HTML 엔티티(예: , <, >, & 등) 공백으로 대체
result = result.replaceAll("&[^;]+;", " ");
// 불필요한 중복 공백/개행 정리(선택사항)
// result = result.replaceAll("\\s+", " ").trim();
return result;
}
}
사용예시
public class Main {
public static void main(String[] args) {
String html = "<html><body><h1>Hello World!</h1>"
+ "<p>This is a paragraph.</p>"
+ "<br>New line after break."
+ "</body></html>";
String cleanText = HtmlUtil.stripHtml(html);
System.out.println(cleanText);
}
}
주요 처리 사항:
- <br> 태그: <br\\s*/?>를 \n으로 변환. (공백이 있을 수 있기 때문에 \\s*로 처리)
- <p> 태그: <p[^>]*>를 \n으로 변환. (<p> 또는 <p>에 추가 속성 있는 경우도 처리)
- 다른 HTML 태그 제거: <[^>]*>로 나머지 HTML 태그 제거.
- HTML 엔티티 제거: &[^;]+;를 공백으로 대체하여 엔티티를 제거.
출력 결과:
Hello World!
This is a paragraph.
New line after break.728x90