正则表达式解析html

来源于网络,java正则表达式过滤html文档,仅作参考:

publicStringHtmlToTextGb2312(StringinputString)

{

StringhtmlStr=inputString;//含html标签的字符串

StringtextStr="";

Patternp_script;

Matcherm_script;

Patternp_style;

Matcherm_style;

Patternp_html;

Matcherm_html;

Patternp_houhtml;

Matcherm_houhtml;

Patternp_spe;

Matcherm_spe;

Patternp_blank;

Matcherm_blank;

Patternp_table;

Matcherm_table;

Patternp_enter;

Matcherm_enter;

try{

StringregEx_script="<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";

//定义script的正则表达式.

StringregEx_style="<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>";

//定义style的正则表达式.

StringregEx_html="<[^>]+>";

//定义HTML标签的正则表达式

StringregEx_houhtml="/[^>]+>";

//定义HTML标签的正则表达式

StringregEx_spe="\\&[^;]+;";

//定义特殊符号的正则表达式

StringregEx_blank="+";

//定义多个空格的正则表达式

StringregEx_table="\t+";

//定义多个制表符的正则表达式

StringregEx_enter="\n+";

//定义多个回车的正则表达式

p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);

m_script=p_script.matcher(htmlStr);

htmlStr=m_script.replaceAll("");//过滤script标签

p_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);

m_style=p_style.matcher(htmlStr);

htmlStr=m_style.replaceAll("");//过滤style标签

p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);

m_html=p_html.matcher(htmlStr);

htmlStr=m_html.replaceAll("");//过滤html标签

p_houhtml=Pattern.compile(regEx_houhtml,Pattern.CASE_INSENSITIVE);

m_houhtml=p_houhtml.matcher(htmlStr);

htmlStr=m_houhtml.replaceAll("");//过滤html标签

p_spe=Pattern.compile(regEx_spe,Pattern.CASE_INSENSITIVE);

m_spe=p_spe.matcher(htmlStr);

htmlStr=m_spe.replaceAll("");//过滤特殊符号

p_blank=Pattern.compile(regEx_blank,Pattern.CASE_INSENSITIVE);

m_blank=p_blank.matcher(htmlStr);

htmlStr=m_blank.replaceAll("");//过滤过多的空格

p_table=Pattern.compile(regEx_table,Pattern.CASE_INSENSITIVE);

m_table=p_table.matcher(htmlStr);

htmlStr=m_table.replaceAll("");//过滤过多的制表符

p_enter=Pattern.compile(regEx_enter,Pattern.CASE_INSENSITIVE);

m_enter=p_enter.matcher(htmlStr);

htmlStr=m_enter.replaceAll("");//过滤过多的制表符

textStr=htmlStr;

}catch(Exceptione)

{

System.err.println("Html2Text:"+e.getMessage());

}

returntextStr;//返回文本字符串

}

相关推荐