/**
* 过滤广告(只能发布 [a-zA-z0-9及汉字,;?.]) ,排除其他特殊符号
* Created by 1 on 2015/8/19.
*/
public class FilterAD {
 
 
    public static void main(String[] args) throws UnsupportedEncodingException {
 
        String str = "afas141541d1221fs三df大法师⒉一二三一四①⑶112·2312,;?.,;?。";
        System.out.println(clearNotChinese(str));
        System.out.println(replaceill(clearNotChinese(str)));
 
        str = "非农白银裙,55,193,05在/线/指/导、验证【730】";
        System.out.println(clearNotChinese(str));
        System.out.println(replaceill(clearNotChinese(str)));
    }
 
 
    public static String clearNotChinese(String buff) {
        return buff.replaceAll("[^a-zA-Z0-9\u4E00-\u9FA5\u002C-\u002C\u003B-\u003B\u002E-\u002E\u003F-\u003F" +
                "\uFF0C-\uFF0C\uFF1B-\uFF1B\uFF1F-\uFF1F\u3002-\u3002]", "");
    }
 
 
    //一二三四五六七八九十
    //4E00 4E8C 4E09 56DB 4E94 516D 4E03 516B 4E5D 5341
    //59F9 8D30 53C1 8086 4F0D 9646 67D2 634C 7396
    //4E00 4E03 4E09 4E5D 4E8C 4E94 4F0D 516B 516D 5341
    //53C1 56DB 59F9 634C 67D2 7396 8086 8D30 9646
    //出现数值行字符替换掉
    public static String replaceill(String buff) {
        String str = buff.replaceAll("[^a-zA-Z\u4E01-\u4E02\u4E04-\u4E08\u4E0A-\u4E5C\u4E5E-\u4E8B" +
                "\u4E8D-\u4E93\u4E95-\u4F0C\u4F0E-\u516A\u516C-\u5340\u5342-\u53C0" +
                "\u53C2-\u56DA\u56DC-\u59F8\u59FA-\u634B\u634D-\u67D1\u67D3-\u7395\u7397-\u8085" +
                "\u8087-\u8D2F\u8D31-\u9645\u9647-\u9FA5\u002C-\u002C\u003B-\u003B\u002E-\u002E\u003F-\u003F" +
                "\uFF0C-\uFF0C\uFF1B-\uFF1B\uFF1F-\uFF1F\u3002-\u3002]", "#");
        str = str.replaceAll("[^#]",",");
 
        System.out.println(str);
        String nums[] = str.split(",");
 
        int numcount = 0;//数字统计
        int specount = 0;//间隔数
        for (String num:nums){
            if (num.length() > 5){
                System.out.println("存在qq广告");
            }else{
                if (num.length()>0){
                    if (specount > 2){
                        numcount = 0;
                        specount = 0;
                    }
                    numcount+=num.length();
                    if (numcount > 5){
                        System.out.println("存在qq广告");
                        specount = 0;
                    }
                }else{
                        specount++;
                }
            }
        }
 
        return str;
    }
 
}

过滤广告(只能发布 [a-zA-z0-9及汉字,;?.]) ,排除其他特殊符号的更多相关文章

  1. firefox火狐浏览器过滤广告插件:Adblock Plus

    firefox火狐浏览器过滤广告插件:Adblock Plus

  2. OpenWrt 路由器过滤广告的N种方法

    路由器已经成为每个家庭不可缺少的角色,手机.电脑.电视,凡是需要互联网的设备都要用到它.那么路由器除了给我们的网络设备分发网络外,还有其他用途吗? 现在很多人家里都用着智能路由器,智能路由器究竟怎么智 ...

  3. 🔥🔥🔥Flutter 字节跳动穿山甲广告插件发布 - FlutterAds

    前言 Flutter 已成为目前最流行的跨平台框架之一,在近期的几个大版本的发布中都提到了 Flutter 版本 Google 广告插件 [google_mobile_ads] .对于"出海 ...

  4. EasyUI combogrid/combobox过滤时限制只能选择现有项

    在使用EasyUI的combogrid时可以通过输入进行过滤,达到快速选择的目的,但是手工输入不存在的项也不会出错,结果提交到数据库后就会产生错误. 比如idField是int型的,输入的数据通过是检 ...

  5. javascript 键盘输入过滤,只能输入数字,小数一位且只能输入5

    $("#right_div2 input[type='text'][class='textClass'][id^='asd_']").live("keydown" ...

  6. mysql group by 过滤字段 只能在SELECT 后面出现,不能写其他字段 报错解决 关键字 sql_mode=only_full_group_by

    1:报错  关键字 sql_mode=only_full_group_bymysql> select uuid,ip,count(*) from dbname_report.t_client_i ...

  7. charles工具过滤腾讯视频播放器广告

    Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据.它允许一个开发者查看所有连接互联 ...

  8. Adblock Plus完美过滤视频网站广告、无黑屏!及屏蔽非本站脚本的Adblock Plus过滤器语法之探讨

    测试用浏览器:Firefox 24.订阅的Adblock Plus过滤规则有默认的 ChinaList + EasyList,和国内视频广告规则[Yge.me],其网址:http://i.yge.me ...

  9. RTB业务知识之1-原生广告

    一.背景 Native Advertising (Native Ads), 又称为原生广告, 是2013全球媒体界爆红的关键词,从2012年年底,就有人开始提了这个名词,接着到处都可以看到这个名词,再 ...

随机推荐

  1. Python flask 构建微电影视频网站☝☝☝

    Python flask 构建微电影视频网站☝☝☝ 1.安装数据库连接依赖包 pip install flask-sqlalchemy 2.创建movie数据库 在CentOS虚拟机,进入MaridD ...

  2. meterpreter读取hash明文记录

    今天测试某个站点时读hash老出错 这里做下读hash的笔记 进去meterpreter后getuid一 1 2 meterpreter > getuid Server username: NT ...

  3. PHP array_search

    1.函数的作用:在数组中查找元素 2.函数的参数: @params mixed  $needle @params array $haystack @params bool $strict 3.例子: ...

  4. 【Labview入门】工具的使用

    labview版本:Labview2015 在你使用labview时你可能已经发现,在鼠标移动到连线上时,鼠标会自动的变化,其实这是你选择了自动识别的工具,然后鼠标会根据你所指示的东西自动切换工具类型 ...

  5. vue——父子组件间传值

    (1)父组件给子组件传值(商品详情页): 根据订单类型,判断显示立即购买/立即拼单: 通过props来传递参数 父组件(商品详情页) 父组件调用子组件,在子组件的标签中,通过:数据名称=”数据”的形式 ...

  6. CSP考场Emacs使用指南[原创]

    前言: 据说,CSP考试,之后不再支持windows了呢. windows用户真得劲! 那用什么系统? Ubuntu上场了 Ubuntu编译指南 进入Ubuntu系统,在你想存的文件夹中新建一个空白文 ...

  7. StopWatch任务计时器

    介   绍: StopWatch 是用来计算程序块的执行时间工具, 目前有好多框架都有实现提供此工具(实现结果都区别不大), 本文介绍org.springframework.util.StopWatc ...

  8. 页面报错常用状态码总结(Http常见状态码)

    作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手.好了,下面就让我们来了解一下比较常见的HTTP状态 ...

  9. 用最复杂的方式学会数组(Python实现动态数组)

    Python序列类型 在本博客中,我们将学习探讨Python的各种"序列"类,内置的三大常用数据结构--列表类(list).元组类(tuple)和字符串类(str). 不知道你发现 ...

  10. Java基础(一)对象构造

    由于Java对象构造非常重要,所以Java提供了多种编写构造器的机制. 1.重载 如果多个方法有相同的名字.不同的参数,便产生了重载.编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与 ...