我有一个用perl写的英文论坛网站,不断被俄语垃圾邮件轰炸。有没有办法使用Perl和regex来检测俄语文本,这样我就可以阻止它了?
发布于 2009-09-09 08:04:08
您可以使用以下命令来检测Cyrillic字符(在俄语中使用):
[\u0400-\u04FF]+如果您真的只需要俄语字符,可以查看上面的文档,其中包含用于基本俄语字母表的确切范围,即[\u0410-\u044F]。当然,您还需要考虑扩展西里尔字符,这些字符仅在俄语中使用--文档中也有提到。
发布于 2009-09-09 17:40:11
使用JG建议的unicode cyrillic字符集是很好的,如果一切都是这样编码的话。然而,这是垃圾邮件,在大多数情况下,事情不是。此外,垃圾邮件发送者经常在垃圾邮件中混合使用字符集,这进一步破坏了这种方法。
我发现检测俄语垃圾邮件的最好方法(或者至少是该过程的第一步)是对最常用的字符集执行grep:
koi8-r
windows-1251
iso-8859-5之后的下一步是尝试一些剩余的语言检测算法。如果这是一个足够大的问题,可以使用付费服务,如google translate (也可以“检测”)或xerox。这些服务为IMO提供了最好的语言检测。
https://stackoverflow.com/questions/1398203
复制相似问题