找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5767|回复: 0

python结合re过滤敏感词

[复制链接]
发表于 2011-6-17 15:07:34 | 显示全部楼层 |阅读模式
越来越觉得Python可爱了,最近写一个过滤敏感词的类,因为好多地方需要用。于是查了一些资料。发现实现代码挺简单的,在这里记录一下。
  1. import re
  2. from Common.CommonSingleton import CSingleton
  3. class CSensitiveFilter(CSingleton):
  4.     #初始化类
  5.     def __init__(self):
  6.         self.filename='word.dat'
  7.         self.strPatton='(';
  8.         self.readFlag = False;
  9.         self.pattern='';
  10.         self.readFilterPatten();
  11.         
  12.     def init(self):
  13.         if self.readFlag == False:
  14.             self.readFilterPatten();
  15.         
  16.     #读取敏感词文件,构造过滤pattern   
  17.     def readFilterPatten(self):
  18.         
  19.         file = open(self.filename)
  20.         for eachline in file:
  21.             self.strPatton=self.strPatton+eachline.replace('\n','')+'|';
  22.         self.strPatton=self.strPatton[:-1]+")"
  23.         file.close();
  24.         self.readFlag=True;
  25.         self.pattern = re.compile(self.strPatton)
  26.         
  27.     #敏感词过滤
  28.     def filter(self,message):
  29.         
  30.         return self.pattern.sub('*',message)
  31.    
  32.     #判断是否有敏感字
  33.     def judgeSpecialSign(self,message):
  34.       
  35.         match = self.pattern.match(message.strip());
  36.         if match == None:
  37.             return True;
  38.         return False;
复制代码
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-6 03:40 , Processed in 0.014846 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表