注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zhouhaigang.love的博客

喜欢冬日黄昏那冻住的山

 
 
 

日志

 
 

正则表达式过滤html元素 程序代码:  

2008-03-06 08:23:02|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

java 正则表达式过滤html元素 程序代码:
/**
     * filter all html element.
     * For example:<a href="www.sohu.com/test">hello!</a>
     * The filter result is :hello!
     * Notice:This method filter the text between "<" and ">"
     * @param element
     * @return
     */
    public static String getTxtWithoutHTMLElement (String element)
    {
//      String reg="<[^<|^>]+>";
//      return  element.replaceAll(reg,"");
       
        if(null==element||"".equals(element.trim()))
        {
            return element;
        }

        Pattern pattern=Pattern.compile("<[^<|^>]*>");
        Matcher matcher=pattern.matcher(element);
        StringBuffer txt=new StringBuffer();
        while(matcher.find())
        {
            String group=matcher.group();
            if(group.matches("<[\\s]*>"))
            {
                matcher.appendReplacement(txt,group);   
            }
            else
            {
                matcher.appendReplacement(txt,"");
            }
        }
        matcher.appendTail(txt);
        repaceEntities(txt,"&","&");
        repaceEntities(txt,"<","<");       
        repaceEntities(txt,">",">");
        repaceEntities(txt,""","\"");
        repaceEntities(txt," ","");
       
        return txt.toString();
    }

 

下面是测试用例:
public void testGetTxtWithoutHTMLElement ()
    {
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<a href='a/test'>test</a>"));
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<a href='a/test'>test"));
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<input type='text'>test</input>"));
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<p>test"));
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<table><tr><td>test</td></tr></table>"));
       
        assertEquals("te<st",ExcelHssfView.getTxtWithoutHTMLElement("<p>te<st"));
       
        assertEquals("te>st",ExcelHssfView.getTxtWithoutHTMLElement("<p>te>st"));
       
        assertEquals("tst",ExcelHssfView.getTxtWithoutHTMLElement("<p>t<e>st"));
       
        assertEquals("t<st",ExcelHssfView.getTxtWithoutHTMLElement("<p>t<<e>st"));
       
        assertEquals("<>test",ExcelHssfView.getTxtWithoutHTMLElement("<p><>test"));
       
        assertEquals("< >test",ExcelHssfView.getTxtWithoutHTMLElement("<p>< >test"));
       
        assertEquals("<<>test",ExcelHssfView.getTxtWithoutHTMLElement("<p><<>test"));
       
        assertEquals("test",ExcelHssfView.getTxtWithoutHTMLElement("<table><tr><td> test</td></tr></table>"));
       
    }
 
 
创建于: 2007-06-21 20:57:43,修改于: 2007-06-21 20:57:43,已浏览350次,有评论1条 
 
 
 
 

网友评论
 
内容: 斯蒂芬
 
aaa 评论于:2007-12-05 18:49:54 (219.143.94.★) 
 
 
 

发表评论
 
     昵称: 匿名 

  评论这张
 
阅读(122)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017