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. C++11 lambda表达式(19篇C++11文章)

    C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问. Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lam ...

  2. Selenium2+python自动化19-单选框和复选框(radiobox、checkbox)【转载】

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  3. xxx.service is not a native service, redirecting to /sbin/chkconfig.

    centos7编译安装的程序无法用systemctl 启动 [root@nagios-server check_commands]# systemctl enable npcd.service npc ...

  4. 函数名后加const

    通过把类成员函数声明为const   以表明它们不修改类对象. 任何不会修改数据成员的函数都应该声明为const类型.如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员 ...

  5. (2).net web api 请求方式与参数

    一.GET 二.POST 如果方法名前缀不带GET 默认为POST请求方法 1.无参数 2.带一个参数 客户端请求时,名称必须为空,不能是dictCategory.不是空的话,会返回空数据 [ ] 3 ...

  6. 【模拟】Friday the Thirteenth

    题目描述 Is Friday the 13th really an unusual event?That is, does the 13th of the month land on a Friday ...

  7. 【codevs1907】【方格取数3】二分图最大带权独立集

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=59001242 向大(hei)佬(e)势力学(di ...

  8. 动态规划 001 - 编辑距离(Levenshtein Distance)问题

    问题 字符串的编辑距离也被称为距Levenshtein距离(Levenshtein Distance),属于经典算法,常用方法使用递归,更好的方法是使用动态规划算法,以避免出现重叠子问题的反复计算,减 ...

  9. 在mac上运行android的intel模拟器导致的死机问题解决

    最近用Mac开发android的时候遇到了一个烦人的问题,装上了HAXM,intel hardware accelerated execution manager以后,一运行android emula ...

  10. python3.6使用pickle序列化class

    from library.connecter.database.mongo import Op_Mongo a = pickle.dumps(Op_Mongo) #序列化 b = pickle.loa ...