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. 一个boost底下的线程池

    Boost的thread库中目前并没有提供线程池,我在sorceforge上找了一个用boost编写的线程池.该线程池和boost结合的比较好,并且提供了多种任务执行策略,使用也非常简单. 下载地址: ...

  2. Linux安转jdk

    1. 创建目录 > mkdir  /opt/java > cd /opt/java 2. 下载jdk压缩包到上述目录 jdk-8u162-linux-x64.tar.gz 3. 解压缩.建 ...

  3. python的递归算法学习(2):具体实现:斐波那契和其中的陷阱

    1.斐波那契 什么是斐波那契,斐波那契额就是一个序列的整数的排序,其定义如下: Fn = Fn-1 + Fn-2 with F0 = 0 and F1 = 1 也就是,0,1,1,2,3,5,8,13 ...

  4. VS2015自动添加注释

    记录下创建一个MVC5下的Models文件夹下的代码添加自动注释修改文件路径位置: 让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 C:\Program ...

  5. linux文件名匹配

    *   匹配文件名中的任何字符串,包括空字符串. ? 匹配文件名中的任何单个字符. [...]   匹配[ ]中所包含的任何字符. [!...]   匹配[ ]中非感叹号!之后的字符. 如: s*   ...

  6. Codeforces 813E Army Creation(主席树)

    题目链接  Educational Codeforces Round 22 Problem E 题意  给定一个序列,$q$次查询,询问从$l$到$r$中出现过的数字的出现次数和$k$取较小值后的和 ...

  7. Python的并发并行[1] -> 线程[1] -> 多线程的建立与使用

    多线程的建立与使用 目录 生成线程的三种方法 单线程与多线程对比 守护线程的设置 1 生成线程的三种方法 三种方式分别为: 创建一个Thread实例,传给它一个函数 创建一个Thread实例,传给它一 ...

  8. 树链剖分【p3178】[HAOI2015]树上操作

    Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a .操作 2 :把某个节点 x 为根的子树中所有点 ...

  9. bzoj 5163: 第k大斜率

    5163: 第k大斜率 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 15  Solved: 4[Submit][Status][Discuss] D ...

  10. c# 中文字符(全角、半角)通用处理

    声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善. 我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角.半角的问题,这会在查询时给我们带来很多麻烦.本 ...