regex - 新手正则表达式问题 - 检测垃圾邮件

标签 regex detect spam

这是我的正则表达式新手问题:

  • 如何检查字符串中是否有 3 个垃圾词? (例如:伟哥、药丸和商店)
  • 如何检测这些垃圾邮件词语的变体,例如“v-iagra”或“v.iagra”? (额外一个字符)

最佳答案

正则表达式似乎不太适合这个特定的钉子。对于您的列表,您可以简单地将所有列入黑名单的单词放入某种排序列表中,然后根据该列表扫描每个标记。直接字符串操作总是比调用当前的正则表达式引擎更快。

对于您的变体(“v-iagra”等),我会删除所有非字符(如@Kinopiko建议的那样),然后再次将它们运行到您的黑名单中。如果你对“viiagra”之类的东西保持警惕,我会看看 Aspell 。这是一个很棒的库,看起来 CPAN 有 Perl 绑定(bind)。

关于regex - 新手正则表达式问题 - 检测垃圾邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1733851/

相关文章:

regex - 使用正则表达式查找名称

javascript - 客户端如何检测页面何时被添加书签?

ios - 矩形检测只检测大矩形而不是小矩形? iOS, swift

php - 被黑了!这段 PHP 代码有什么作用?我应该如何避免?

php - 在 php 中良好的电子邮件传递 list

c# - 如何使用 DataAnnotations 和 Regex - c# - ASP.NET Core

regex - GREP 单个整数而不是整个相似的数字

regex - 使用 ko.observable 进行多电子邮件验证

Linux:如何检测计算机是否正在通过串行控制台进行控制

javascript - String.fromCharCode() 会阻止垃圾邮件吗?