敏感词屏蔽

一、敏感词屏蔽的方法:

public static String filterFile="" +

"你妈|" +
"靠|" +
"傻B|" +
"傻逼|" +
"最后一个不会被屏蔽";

private static final String FILTER_WORD = filterFile.replaceAll("\r\n", "");

public static boolean filter(String filterWord ,String filterFile) {
Pattern p = Pattern.compile(FILTER_WORD );
if (p.matcher(filterWord).find())
return true;//表示含有该敏感词
else
return false;//表示不含有该敏感词
}

二、替换敏感词的方法:

private static final String REG_EX = "[`~!@#$%^&*�?)+=|{}':;',\\[\\].<>/?~!@#�?…�?&*()—_+|{}【�?★�?;:”�?’�?,�??\\\\]";

public static String filter(String str, String replacement) throws PatternSyntaxException {//str为敏感词,replacement要替换的内容
return Pattern.compile(REG_EX).matcher(str).replaceAll(replacement).trim();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
变形、组合或关键字的敏感词屏蔽是一个相对复杂的问题,需要使用更加高级的算法来实现。以下是一些实现方法: 1. DFA(Deterministic Finite Automaton,确定有限状态自动机) DFA 是一种常用的字符串匹配算法,它可以用来快速匹配多个敏感词。具体实现方法是将所有敏感词构建成一个有限状态自动机(DFA),然后针对输入的文本进行状态转移,最终得到匹配结果。这种算法的优点是匹配速度快,适合在前端实现;缺点是构建 DFA 比较耗时,对于大量敏感词可能需要在后端进行构建。 2. Trie 树 Trie 树(字典树)是一种多叉树数据结构,它可以用来快速匹配多个字符串。具体实现方法是将所有敏感词构建成一棵 Trie 树,然后针对输入的文本在 Trie 树上进行搜索,最终得到匹配结果。这种算法的优点是构建 Trie 树相对比较简单,对于小规模的敏感词列表适合在前端实现;缺点是匹配速度相对较慢。 3. Aho-Corasick 算法 Aho-Corasick 算法是一种基于 Trie 树的多模式匹配算法,它可以快速地匹配多个字符串。与 Trie 树不同的是,Aho-Corasick 算法在 Trie 树的基础上增加了“失配指针”,可以在匹配不成功时快速跳转到下一个可能匹配的位置。这种算法的优点是匹配速度快,可以处理大规模的敏感词列表;缺点是实现较为复杂,适合在后端实现。 以上是三种常用的敏感词屏蔽算法,可以根据具体情况选择合适的算法来实现。需要注意的是,敏感词屏蔽只是一种辅助手段,还需要在后端进行敏感词过滤,以确保数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值