正则表达式处理img标签

文章内容中包含有<img>标签内容,但有时候不需要显示图片,只需要显示内容,需要将内容中的图片替换掉,这个正则表达式,我可花了些时间,百度了一下,没有合适的,就自己费时间写了,

还可以用吧。  这里是java的,但正则表达式应该是一样的吧。

 

在网上找一段js的处理代码,异常简洁,相当好,这里和大家共享。

  <script>

var content='${item.content}';
                                      re = new RegExp("<(?!img|br|p|/p).*?>", "g"); // 创建正则表达式对象。
                                      r = content.match(re); // 在字符串 s 中查找匹配。
                                      var contentValue = content.replace(/<[^>]+>/g, ""); //去掉所有的html标记
                                      if(contentValue.length>80){
                                          contentValue=contentValue.substring(0,80)+"...";
                                      }

       </script>

 

以下是java代码:这里还真费了我不少脑筋,因为我们的文档发布者,总是从别处复制粘贴到编辑器里,带上了很多的各种复杂样式。在界面列表中,只显示一少部分内容,这时候需要对文档做处理之后再支截取少部分内容显示。不处理直接截取部分内容显示就有各种异常。

String content="<img src=\"http://192.168.1.162/upload/pu_68.jpg\" alt=\"\" />象个洋娃娃吗33333<img src=\"http://192.168.1.152/upload/33288.jpg\" alt=\"\" />888rrrrrr";

 

    //  String regex="<img\\s*([\\w]*=(\"|\')([^\"\']*)(\"|\')\\s*)*/>";//这样更简单
       // String regex="<img\\s*src=(\"|\')([^\"\']+)(\"|\')\\s*([\\w]+=(\"|\')([^\"\']*)(\"|\')\\s*)*/>";
        Pattern p = Pattern.compile("<img\\s*src=(\"|\')([^\"\']+)(\"|\')\\s*([\\w]+=(\"|\')([^\"\']*)(\"|\')\\s*)*/>");
        Matcher m = p.matcher(content);
    上面是单纯图片的,下面处理比较全面了。


                String regex="<(img|a|p|b|div|br)\\s*([\\w]*=(\"|\')([^\"\'<]*)(\"|\')\\s*)*(/>|>)";
                content=content.replaceAll(regex, "");
                String regex2="<span\\s*([\\w]*=(\"|\')(([^\"\'/>><']*)(\"|\'))*\\s*)*(/>|>)";
                content=content.replaceAll(regex2, "");
                content=content.replaceAll("<(/a|b|/b|p|/p|/span|/div)>", "");
                content=content.replaceAll("\r|\n|\t|&nbsp;", "");
                if(content.length()>100){
                    content=content.substring(0,100)+"...";
                }
     
    
        System.out.println(content);

 至此,可以基本满足需要了,虽然不能解决全部问题。

 

//<img\\s*([\\w]*=(\"|\')([^\"\']*)(\"|\')\\s*)*/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值