功能:使用正则  对玩家昵称处理,如果含有 屏蔽字库里的敏感字眼进行屏蔽。已封装成dll

1.屏蔽字库处理成所需要的正则格式:(所需正则表达式格式:".*((XX)|(XX)|(XX)|....).*")

2.FilterHelper类中:

public sealed class FilterHelper
{
private Regex r; #region Singleton
private static readonly FilterHelper instance = new FilterHelper();
public static FilterHelper Instance { get { return instance; } }
private FilterHelper() { }
#endregion private void ReadRex()
{
string path = AppDomain.CurrentDomain.BaseDirectory;
string textFile = path + "FilterSt.txt";
FileStream fs;
if (File.Exists(textFile))
{
fs = new FileStream(textFile, FileMode.Open, FileAccess.Read);
using (fs)
{
////TextRange text = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd);
//text.Load(fs, DataFormats.Text); //创建一个容量4M的数组
byte[] byteData = new byte[fs.Length];
//从文件中读取数据写入到数组中(数组对象,从第几个开始读,读多少个)
//返回读取的文件内容真实字节数
int length = fs.Read(byteData, , byteData.Length);
//如果字节数大于0,则转码
if (length > )
{
//将数组转以UTF-8字符集编码格式的字符串
var filterst = ".*(" + Encoding.UTF8.GetString(byteData) + ").*";
r=new Regex(@filterst);
} }
}
else
{
throw new FileNotFoundException("找不到屏蔽字库");
}
} /// <summary>
/// 判断是否屏蔽
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public bool IsStFilter(string input)
{
if (string.IsNullOrEmpty(input))
{
throw new Exception("输入不能为空");
}
if (r == null)
{
ReadRex();
} if (r.IsMatch(input))
{
return true;
}
else
{
return false;
}
}
}

3.需要判断是否屏蔽的地方:直接调用FilterHelper.Instance.IsStFilter(判断的昵称)

备注:1、dll中只能包含代码,资源文件必须复制到对应的输出路径。

   2、屏蔽字库的txt要复制到项目的输出路径,也就是 AppDomain.CurrentDomain.BaseDirectory说对应的路径。

Demo连接:http://download.csdn.net/detail/ofat___lin/7615715

C# 玩家昵称屏蔽敏感字眼的更多相关文章

  1. 萌新笔记——用KMP算法与Trie字典树实现屏蔽敏感词(UTF-8编码)

    前几天写好了字典,又刚好重温了KMP算法,恰逢遇到朋友吐槽最近被和谐的词越来越多了,于是突发奇想,想要自己实现一下敏感词屏蔽. 基本敏感词的屏蔽说起来很简单,只要把字符串中的敏感词替换成"* ...

  2. 用KMP算法与Trie字典树实现屏蔽敏感词(UTF-8编码)

    前几天写好了字典,又刚好重温了KMP算法,恰逢遇到朋友吐槽最近被和谐的词越来越多了,于是突发奇想,想要自己实现一下敏感词屏蔽. 基本敏感词的屏蔽说起来很简单,只要把字符串中的敏感词替换成“***”就可 ...

  3. JS采用ActiveXObject实现用户在提交表单时屏蔽敏感词的功能

    本例中敏感词ciku.txt放在C盘根目录下,采用的ActiveXObject插件获取本地文件内容.使用此插件不需网上下插件,直接用如下js代码即可. 浏览器需修改interner安全选项的级别,启用 ...

  4. Python实现屏蔽敏感词

    一.需求 1. 有一个文件,里面有一些敏感词汇,用户输入一段话,若包含这些词,就用**代替,并输出 二.实现代码 f = open('lib.txt', 'r') result = '' f1 = i ...

  5. Java 利用DFA算法 屏蔽敏感词

    原文:http://www.open-open.com/code/view/1435214601278 import java.io.BufferedReader; import java.io.Fi ...

  6. python (5分钟实现一个游戏的屏蔽敏感字系统,)

    import datetime time=datetime.datetime.now() dirty= ['fuck','狗日的','犊子','麻批','仙人板板','R你妈','操你','草你',' ...

  7. 微信和QQ内置浏览器为什么老是弹停止访问该网页,微信域名被屏蔽的解决办法

    近来很多商家开始重视域名防封的技术了,为什么呢,因为实在是封怕了.三天两头就得去换域名,换域名是小事,用户流失就是大事了,直接跟利益挂钩的.那么域名防封技术究竟有多重要呢?又该如何实现域名防封呢?下面 ...

  8. 如何用Python实现敏感词的过滤

    题目要求如下: 从文件解析敏感词,从终端获取用户输入.根据敏感词对用户输入进行过滤.这里过滤需要考虑不止一个过滤词:即将读取的所有过滤词,放进一个列表,用屏蔽词检索用户输入,如果有屏蔽词,则将其替换为 ...

  9. 怎么在执行Python脚本时,密码等敏感信息也不让它出现

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

随机推荐

  1. Android adb.exe程序启动不起来,如何处理

    经常遇到 Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be ...

  2. C#中String和string有什么区别

    在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的. 习惯上,我们把字符串当作对象时(有值的对象实体),我们用string.而我们把它当类时(需要字符串类中 ...

  3. redis实现与分析

    http://www.kuqin.com/shuoit/20141019/342739.html

  4. Debian中编译内核

    转载: http://blog.163.com/libo_5/blog/static/156968520101016102051580/ http://hi.baidu.com/wg_wang/ite ...

  5. 关于禁止Android scrollView 因内容变化而自动滚动 android:descendantFocusability

    出现这种情况是因为你让scrollview获得了焦点,所以它才会滚动.如果你百度了以后,你可能会发现有些博客会说让焦点停在固定的一个view中就可以了.这对于不存在刷新的页面确实是可以的,但是当你出现 ...

  6. c# checked unchecked 关键字

    checked 和 unchecked关键字用来限定检查或者不检查数学运算溢出的:如果使用了checked发生数学运算溢出时会抛出OverflowException:如果使用了unchecked则不会 ...

  7. 解决java中对URL编码的问题

    首先查看javascript中的encodeURI和encodeURLComponent方法的区别. encodeURI:不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行 ...

  8. vb.net机房收费系统之组合查询

    我个人一直认为,组合查询是机房收费系统的一个难点,尤其是用到三层之后,如果要为组合查询中的每一个查询建立一个显然是太麻烦了. 下面介绍一下我的方法,对大家起个参考作用. 我将该表中可输入的内容定义为一 ...

  9. crawler4j:轻量级多线程网络爬虫实例

    crawler4j是Java实现的开源网络爬虫.提供了简单易用的接口,可以在几分钟内创建一个多线程网络爬虫. 下面实例结合jsoup(中文版API),javacvs 爬取自如租房网(http://sh ...

  10. python之supervisord启动脚本

    Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效.可以将非Daemon的应用转为daemon程序.关于supervisord的安装和配置,在网上已经有 ...