Notice
Recent Posts
Recent Comments
Link
투케이2K
251. (java/자바) 정규식 패턴을 사용해서 html 태그 및 엔터티 문자 제거 수행 실시 본문
[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
package ex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class MainActivity8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// [초기 변수 선언 실시]
String htmlData = "<p>test url</p><p><a href="https://www.naver.com">https://www.naver.com</a></p><p>	&nbsp;</p><p>입니다</p><p>&nbsp;</p>";
// [html 태그 제거 수행 실시]
htmlTagRemoveString(htmlData);
} // [메인 종료]
public static String htmlTagRemoveString(String data) {
/**
* // -----------------------------------------
* [htmlTagRemoveString 메소드 설명]
* // -----------------------------------------
* 1. html 형식 태그 제거 문자열 데이터 반환
* // -----------------------------------------
* 2. 호출 방식 :
* String data = "<p>test url</p><p><a href="https://www.naver.com">https://www.naver.com</a></p><p>&nbsp;</p><p>입니다</p><p>&nbsp;</p>";
*
* C_Util.htmlTagRemoveString(data);
* // -----------------------------------------
* 3. 리턴 데이터 : html 형식 태그 제거 문자열 반환
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
String result = "";
// [문자열 데이터 널 판단 수행 실시]
if (data != null
&& data.length()>0
&& data.trim().equals("") == false
&& data.trim().equals("null") == false
&& data.trim().equals("undefined") == false){ // [널이 아닌 경우]
try {
// [html 태그를 제거 하기 위한 패턴 정의 실시]
String tag_pattern = "<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>"; // [<p> 등 태그 제거]
Pattern num_reg_entity_pattern = Pattern.compile("&#[0-9]+;"); // [	 형태 제거]
Pattern char_reg_entity_pattern = Pattern.compile("&[a-zA-Z]+;"); // [& 형태 제거]
Pattern char_normal_entity_pattern = Pattern.compile(" [a-zA-Z]+;"); // [amp; 형태 제거]
// [html 태그 1차 제거 실시]
result = data.replaceAll(tag_pattern, " ");
// [html 태그 2차 제거 실시]
Matcher num_reg_mat = num_reg_entity_pattern.matcher(result);
result = num_reg_mat.replaceAll("");
Matcher char_reg_mat = char_reg_entity_pattern.matcher(result);
result = char_reg_mat.replaceAll("");
Matcher char_normal_mat = char_normal_entity_pattern.matcher(result);
result = char_normal_mat.replaceAll("");
// [html 태그 연속 공백 제거 실시]
result = result.replaceAll("\\s+", " ");
// [문자열 양쪽 끝 공백 제거 실시]
result = result.trim();
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력 실시]
///*
System.out.println("");
System.out.println("================================================");
System.out.println("[htmlTagRemoveString() :: html 형식 태그 제거 문자열 데이터 반환 실시]");
System.out.println("input :: " + String.valueOf(data));
System.out.println("result :: " + String.valueOf(result.toString()));
System.out.println("================================================");
System.out.println("");
// */
// [리턴 데이터 반환 실시]
return result;
}
} // [클래스 종료]
[결과 출력]
반응형
'Java' 카테고리의 다른 글
Comments