예전글들
HTML 태그 제거 정규식
진트
2008. 10. 2. 13:10
HTML 태그 제거 정규식#
태그제거[1]↓ #
- // 정규표현식으로 제거
String.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","");
한 줄로 표현하기[1]↓ #
- // 한줄로 할려면 아래 추가
String.replaceAll("("\r|\n| ","");
HTML 태그 제거 소스 [2]↓ #
- public class HTMLCleaner
{ - public static void main(String[] args)
{
HTMLCleaner cleaner = new HTMLCleaner(); - //System.out.println(cleaner.clean("<html><head><script>aaaa</script></head><body><div>aaa</div> <div> <script></script></div><img src=\"
- }
- private static interface Patterns
{
// javascript tags and everything in between
public static final Pattern SCRIPTS = Pattern.compile(
"<(no)?script[^>]*>.*?</(no)?script>",
Pattern.DOTALL); - public static final Pattern STYLE = Pattern.compile(
"<style[^>]*>.*</style>",
Pattern.DOTALL);
// HTML/XML tags - public static final Pattern TAGS = Pattern.compile("<(\"[^\"]*\"|\'[^\']*\'|[^\'\">])*>");
- public static final Pattern nTAGS = Pattern.compile("<\\w+\\s+[^<]*\\s*>");
// entity references
public static final Pattern ENTITY_REFS = Pattern.compile("&[^;]+;");
// repeated whitespace
public static final Pattern WHITESPACE = Pattern.compile("\\s\\s+");
} - /**
* Clean the HTML input.
*/
public String clean(String s)
{
if (s == null)
{
return null;
} - Matcher m;
- m = Patterns.SCRIPTS.matcher(s);
s = m.replaceAll("");
m = Patterns.STYLE.matcher(s);
s = m.replaceAll("");
m = Patterns.TAGS.matcher(s);
s = m.replaceAll("");
m = Patterns.ENTITY_REFS.matcher(s);
s = m.replaceAll("");
m = Patterns.WHITESPACE.matcher(s);
s = m.replaceAll(" "); - return s;
} - }
참고자료#
(1) a b http://fairworld.tistory.com/138
(2) a http://okjsp.pe.kr/seq/111879
이 글은 스프링노트에서 작성되었습니다.