我有一个用perl编写的英语论坛网站,该网站不断受到俄语垃圾邮件的轰炸。有没有办法使用Perl和正则表达式来检测俄语文本,以便我可以阻止它?
答案 0 :(得分:9)
您可以使用以下方法检测Cyrillic个字符(俄语使用):
[\u0400-\u04FF]+
如果您真的只想要俄文字符,可以查看上述文件,其中包含用于基本俄语字母[\u0410-\u044F]
的确切范围。当然,您还需要考虑专门用于俄语的扩展西里尔字符 - 也在文档中提到。
答案 1 :(得分:3)
使用JG建议的unicode西里尔字符集很好,如果所有内容都按此编码。然而,这是垃圾邮件,而且大部分情况都不是。此外,垃圾邮件发送者经常在垃圾邮件中混合使用字符集,这进一步搞砸了这种方法。
我发现检测俄语垃圾邮件的最佳方式(或者至少是过程中的初步步骤)是为最常用的字符集提供grep:
koi8-r
windows-1251
iso-8859-5
之后的下一步是尝试使用剩余的语言检测算法。如果这是一个足够大的问题,使用付费服务,如谷歌翻译(也“检测”)或复印。这些服务为IMO提供了最好的语言检测。