background image

一个简单的关键字过滤算法

看到《一个较完整的关键字过滤解决方案(上)》文章,讲到怎样在项目中嵌入过滤方

 

案的问题,以及提到

xingd   

sumtec 两位大师发表的系列互拼的文章,在此我也忍不

住谈谈自己遇到的问题以及一个的简化版的算法。

因为过滤关键字机制到处可见,于是聪明的网友就会想到各种各样的方法突破,例如:

1、中文会用繁体字的方法避开关键字扫描

2

 

、在关键字中间插入无意思的特殊字符,例如

* & # @ 等,而且个数可变

3、使用谐音或拆字法变换关键字

在实现自己的算法时也有些问题:

4、随着时间推移,关键字列表会越来越大,有些论坛常用的正则表达式 N 次扫描的方法显

得效率很低。

5、关键字有不同的严重级别,有些需要禁止,有些只需要替换,还有一些可能记

录一下即可。

针对这些问题,可采用的应对方法:

1、加载关键字列表时,将所有的关键字转换成繁体字一份,以扫描繁体版的关键字;

这个转换工作只需一句就可以实现了:

s=Microsoft.VisualBasic.Strings.StrConv(word, 

Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);