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. Express定制参数解析错误响应值

    Nodejs的Express框架本身所提供的东西并没有其它框架那么多.其中的一个问题就是对于请求数据的解析. express中的请求对象并没有未经过解析的请求体,几乎所有的请求体都要经过类似于body ...

  2. OpenJDK中java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException解决办法

    http://www.cnblogs.com/xusweeter/p/9667801.html

  3. CF987C Three displays【一维DP/类似最大子序列和】

    [链接]:CF987C [分析]:先求出每个s[i]后面比s[i]大的c[i]的最小值,然后枚举前两个数c(i),c(j)以及 j 后面递增且存在最小值的dp(j) [代码]: #include< ...

  4. Codeforces Beta Round #4 (Div. 2 Only) A. Watermelon【暴力/数学/只有偶数才能分解为两个偶数】

    time limit per test 1 second memory limit per test 64 megabytes input standard input output standard ...

  5. JSK 18: 跳跃游戏

    题目描述 给定一个非负整数数组,假定你的初始位置为数组第一个下标. 数组中的每个元素代表你在那个位置能够跳跃的最大长度. 请确认你是否能够跳跃到数组的最后一个下标. 例如:$A = [2,3,1,1, ...

  6. App Class Loader

    Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点: 1.JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 2.JVM Class Lo ...

  7. Codeforces 908 D New Year and Arbitrary Arrangement

    Discription You are given three integers k, pa and pb. You will construct a sequence with the follow ...

  8. 第八章 android-布局

    常用的布局实现方式:线性布局,框架布局,表格布局,相对布局,绝对布局 1,线性布局 (1)线性布局是一种很重要的布局,也是经常用到的一种布局 (2)在线性布局中,所有的元素都按照水平竖直的顺序在界面上 ...

  9. 集合框架(04)HashMap

    集合Map的简单方法:该集合存储键值对,一对一对往里面存,而且要保证健的唯一性 1.添加 put(K key,V value) putAll(Map<? Extends k, ? extends ...

  10. ArcMAP中如何将16位保存的卫星底图,转变为8位表示

    首先说明,这种转换将会去除影像的投影像素的定义,并在转换后变为黑色的部分.16位的存储,一方面也是定义透明非数据像素点表示的方便.但是这种定义直接加大了影像的大小,不便于与CAD等软件进行交换数据.