C#敏感词汇过滤(不是正则)
System.Text.StringBuilder sb =
new
System.Text.StringBuilder(text.Length);
string
filterText =
"需要过滤的脏字 以|分开"
;
//脏字 可根据自己的方式用分隔符
string
[] filterData = filterText.Split(
'|'
);
foreach
(var item
in
filterData)
{
char
value = item[0];
if
(dicList.ContainsKey(value))
dicList[value].Add(item);
else
dicList.Add(value,
new
List<
string
>() { item });
}
int
count = text.Length;
for
(
int
i = 0; i < count; i++)
{
char
word = text[i];
if
(dicList.ContainsKey(word))
//如果在字典表中存在这个key
{
int
num = 0;
//是否找到匹配的关键字 1找到0未找到
var data = dicList[word].OrderBy(g => g.Length);
//把该key的字典集合按 字符数排序(方便下面从少往多截取字符串查找)
foreach
(var wordbook
in
data)
{
if
(i + wordbook.Length <= count)
//如果需截取的字符串的索引小于总长度 则执行截取
{
string
result = text.Substring(i, wordbook.Length);
//根据关键字长度往后截取相同的字符数进行比较
if
(result == wordbook)
{
num = 1;
sb.Append(GetString(result));
i = i + wordbook.Length - 1;
//比较成功 同时改变i的索引
break
;
}
}
}
if
(num == 0)
sb.Append(word);
}
else
sb.Append(word);
}
return
sb.ToString();
}
/// <summary>
/// 替换星号
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private
static
string
GetString(
string
value)
{
string
starNum =
string
.Empty;
for
(
int
i = 0; i < value.Length; i++)
{
starNum +=
"*"
;
}
return
starNum;
}
C#敏感词汇过滤(不是正则)相关推荐
- 优秀博客 --敏感词汇过滤
2019独角兽企业重金招聘Python工程师标准>>> 敏感词汇过滤 http://www.cnblogs.com/chenssy/p/3751221.html#2966041 树上 ...
- 动态代理的分析以及利用动态代理模式进行敏感词汇过滤
动态代理 增强对象的功能: 设计模式:一些通用的解决固定问题的方式 代理模式 概念: (1). 真实对象:被代理的对象 (2). 代理对象: (3). 代理模式:代理对象代理真实对象,达到增强真实对象 ...
- Java基于Socket实现聊天、群聊、敏感词汇过滤功能
首先的话,这个代码主要是我很久以前写的,然后当时还有很多地方没有理解,现在再来看看这份代码,实在是觉得丑陋不堪,想改,但是是真的改都不好改了- 所以,写代码,规范真的很重要. 实现的功能: 用户私聊 ...
- 【敏感词汇过滤算法】基于DFA-前缀树的敏感词汇过滤算法(项目实用)
在敏感词汇过滤这块,不同的算法所造成的性能差异是非常大的,选择一个合适的算法非常重要.因为以前做算法的时候做过类似前缀树的字符串匹配之类的算法,所以一开始就打算用前缀树做的,后面了解了一下DFA的相关 ...
- PHP敏感词汇过滤SDK(树形结构遍历命中违禁词)
先介绍一下匹配敏感词原理吧,因为没有工具,画的很糙,有疑问直接联系我.(绿色箭头代表命中敏感词,灰色:未命中) base 确定有穷自动机(DFA)算法 比如说"可以"是敏感词,那么 ...
- Filter - 通过拦截器与动态代理实现敏感词汇过滤
需求:将敏感词汇.txt文件中的词语过滤为 -> "***" 分析: 首先加载文档,将文档中的词汇纳入集合中备用,方便后期比对使用. 使用Proxy动态代理将request对 ...
- 敏感词汇过滤(不区分大小写)
最近项目中,用户评论内容需要屏蔽敏感词汇,从网上总结以下方法,(不区分大小写,如想设置大小写敏感,可以把代码中content..toLowerCase()去掉).具体看代码: 1.读取敏感词汇文档 & ...
- 小程序敏感词汇过滤之输入什么都返OK
1.post提交 2.post过去的数据编码为utf-8 注意:不仅仅是评论内容为utf-8,不然会导致你输入什么都返回ok $msg = json_encode(array('content'= ...
- JSP和敏感词汇过滤
1.JSP 1.1 JSP概述 全称: Java Server Page Java服务器页面,和Servlet一样,都是Sun公司提供的动态资源开发技术.兼容HTML,CSS,JavaScr ...
最新文章
- java-基础-强、软、弱、虚引用
- Google、Stanford导师带出的AI人才,是你吗?
- Redis中7种集合类型应用场景
- 复杂XML的解析及组装
- 数据库的两个好帮手:pagehack和pg_xlogdump
- 百度百科做起来也不难
- 执行命令行并等待完成
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
- 修改Gravatar生成的默认头像
- android ListView刷新抢占屏幕焦点
- 头文件注释轻松搞—VS2013
- 易知大学“大数据挖掘与分析(Python)”免费学习平台
- QQ音乐、网易云音乐、虾米音乐们的音乐社区暗战
- 现代前端技术解析:前端三层结构与应用
- shiro的anon失效问题
- Oracle连接pg,pg连接oracle.sql
- 小米note2鸿蒙ROM,小米最新刷机包rom下载_奇兔rom市场
- android 跳转oppo应用中心_Android 遍历手机应用,跳转应用市场详情页面
- Shell攻关之正则表达式
- java-从菜鸟到大神