java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用
如果链接有多个,返回结果中会有多出的空格,请注意!
 
实现代码:
 
 
1.测试版

      public static void main(String[] args) {
            // System.out.println(testFilter("刚在#微操盘#卖出的这支600111 包钢稀土 又挣钱了!有木有!人品爆发了有木有! http://t.cn/zlrQS3L",
            // "微操盘"));
 
            String text = "#转播越多,http://url.cn/79H8ORhttp://url.cn/79H8OR收获越http://t.cn/79H8OR多#予人玫瑰,手留余香。“一键转播”精彩内容至腾讯微博,分享给好友,还可淘Q币,赢公仔!转播越多,机会越多~拿起鼠标疯狂转起来,转出自己的style!http://url.cn/79H8ORqqwweerrtt";
            // String regex = "http://t.cn/\\w+";
            text = text.replace("http://", " http://");
            System.out.println(text);
            // /后面字符在这[A-Za-z0-9_]之内,都会被匹配
            // String regex = "(http://(url|t).cn/\\w+)";
 
            // /后面字符在这[A-Za-z0-9_]之内,只会匹配0~7次
            String regex = "(http://(url|t).cn/\\w{0,7})";
            text = text.replaceAll(regex, "");
            System.out.println(text);
 
            text = WebUtil.filterSpecialChar(text);
            System.out.println(text);
      }

 
2.正式版

      /**
       * 清除所有微博短链接
       *
       * @param s
       *            文本
       * @return 清除所有链接后的文本,返回内容中会多一些空格,请注意
       */
      public static String clearWeiboShortUrl(String s) {
            // 如果要清除的链接有多个的话,还需要清除为了清除多个链接而补充的空格,不然内容中会多出空格来
            if (null != s) {
                  // 各大微博链接
                  // http://163.fm/XY9AT9z
                  // http://url.hexun.com/1JX44
                  // http://yicai.net/WMK8r
                  // http://t.cn/79H8OR
                  // http://t.itc.cn/79H8OR
                  // http://url.cn/79H8OR
 
                  // Matcher matcher =
                  // Pattern.compile("(http://(url|t).cn/)").matcher(s);
                  // 各大微博链接不一致,修改域名任意
                  Matcher matcher = Pattern.compile("(http://[\\w.]+/)").matcher(s);
                  int count = 0;
                  while (matcher.find()) {
                        count++;
                        // System.out.println(matcher.group());
                  }
                  // int count =
                  // Pattern.compile("(http://(url|t).cn)").matcher(s).groupCount();
                  if (count > 0) {
                        if (count > 1) {
                              s = s.replace("http://", " http://");
                        }
                        // /后面字符在这[A-Za-z0-9_]之内,都会被匹配
                        // String regex = "(http://(url|t).cn/\\w+)";
                        // /后面字符在这[A-Za-z0-9_]之内,只会匹配0~10次
                        // String regex = "(http://(url|t).cn/\\w{0,10})";
                        // 域名任意,/后面字符在这[A-Za-z0-9_]之内,只会匹配0~10次
                        String regex = "(http://[\\w.]+/\\w{0,10})";
                        s = s.replaceAll(regex, "");
                  }
            }
            return s;
      }

java清除所有微博短链接 Java问题通用解决代码的更多相关文章

  1. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

  2. 微博短链接的生成算法(Java版本)

    最近看到微博的短链接真是很火啊,新浪.腾讯.搜狐等微博网站都加入了短链接的功能.之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少.短链接的主要职责 ...

  3. 长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...

  4. java 实现新浪微博内容计数器 Java问题通用解决代码

    http://www.mr3g.net/?p=220 参考sina的js版本而来,费弄最多的时间就是java对ansii码的判断了,js直接就是isascii()函数就可以实现了,java还要想办法 ...

  5. java计算时间差 Java问题通用解决代码

    java实现计算时间差     正式版:       /**        * 计算时间差,求出两者相隔的时间        *        * @param nowDate        *    ...

  6. java精确除法计算,四舍五入 Java问题通用解决代码

    主要用java.math.BigDecimal工具类实现,想要了解BigDecimal类可以看java api   正式版:        public static Double divide() ...

  7. java统计中英文字数 Java问题通用解决代码

    http://yangchao20020.blog.163.com/blog/static/483822472011111635424751/   这个不适用于新浪微博字数的统计,结果有差别,若需要可 ...

  8. java检测http请求的ip地址 Java问题通用解决代码

    以后再用到的话,至少能起个参考作用 java实现,struts2的Action中,依赖HttpServletRequest     package net.dookoo.web.action;   i ...

  9. java替换文本中所有的正则符号 Java问题通用解决代码

    开发时遇到一个需求,需要对一段文本中的所有正则符号进行转义,不然使用split分割方法分割文本的话无效,想到用替换来做,全部替换正则符号为转义后的符号   贴java实现代码:   1.测试版     ...

随机推荐

  1. JS打印——第三方控件打印

    LODOP 官方地址:http://www.lodop.net/ 一个很好的打印控件,可以是实现纸张设置.横打竖打.打印预览.打印维护多种功能.官网的示例非常详细.能很好支持多种浏览器的打印. 在使用 ...

  2. 从linux看android之二--java世界的盘古女娲

    在linux从内核态进入用户态运行init进程后启动的一个进程就是zygote.zygote是在android系统中创建java世界的盘古,他创建了第一个java虚拟机,同时他又是女娲,他成功地繁殖了 ...

  3. 详解TCP的三次握手四次断开

    本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程. 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提 ...

  4. hdu 3635(并查集)

    Dragon Balls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  5. HDU 6112.今夕何夕-蔡勒公式 (2017"百度之星"程序设计大赛 - 初赛(A)1005)

    1005:今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)     Probl ...

  6. Tarjan缩点+LCA【p2783】有机化学之神偶尔会做作弊

    Description 你翻到那一题:给定一个烃,只含有单键(给初中生的一个理解性解释:就是一堆碳用横线连起来,横线都是单条的). 然后炎魔之王拉格纳罗斯用他的火焰净化了一切环(???).所有的环状碳 ...

  7. SQL PARTITION BY:列值改变时重置计数

    现有数据如下: 需求:以科目为单位 对分数进行排序 SELECT *, ROW_NUMBER() OVER (PARTITION BY 科目 ORDER BY 分数 DESC) AS NUM FROM ...

  8. 九. 常用类库、向量与哈希2.Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...

  9. 四. Java继承和多态8.Java final关键字:阻止继承和多态

    在 Java 中,声明类.变量和方法时,可使用关键字 final 来修饰.final 所修饰的数据具有“终态”的特征,表示“最终的”意思.具体规定如下: final 修饰的类不能被继承. final ...

  10. 第一个Mac程序——倒计时v1&v2

    先放效果图: 这是我第一次尝试在Mac平台下编程,之前学过几天IOS开发,一直在等MJ老师更新.闲下来不编程不舒服,给自己,也给老婆编了这个以提醒自己好好学习.v2版加入了各种倒计时.改进了界面.把倒 ...