filter - 需要 RegExpr 匹配组为 8 个,包含 2+ 大写字母、2+ 小写字母和 1+ 数字

标签 filter spam

我正在尝试使用与以下情况匹配的正则表达式创建垃圾邮件过滤器。

  • 有一组正好 8 个字母数字字符需要匹配。
  • 必须包含2个或更多大写字母;
  • 并且它必须包含 2 个或更多小写字母;
  • 并且它必须包含 1 个或多个数字。

到目前为止,我所能想到的就是:

(?i)[A-Za-z0-9]{8}

我的代码确实匹配 8 个大小写混合的组,但不强制使用大写或小写或指定每种类型必须出现的次数。因此,我将其与相关消息中始终存在的其他必备功能结合起来。

这是我尝试检测的模式示例:

WbNDSk9e

这是垃圾邮件 URL 的一部分。我见过的其他组遵循相同的模式,即 UC 和 LC 各至少有 2 个字母以及 1 个或多个数字,并且始终恰好有 8 个字符。我还没有看到其他角色或变体。

据我所知,我能够使用的唯一开关是使用 (?i) 打开区分大小写。我在一些回复中看到的其他一些开关在我使用的程序中不起作用。我对单行 RegExpr 规则要求是否太多?

我目前使用 RegEx Match 来测试我的规则,我的反垃圾邮件程序使用相同的引擎。

最佳答案

^(?=.*?[A-Z].*?[A-Z])(?=.*?[a-z].*?[a-z])(?=.*?\d).{8}$

分割:

(?=.*?[A-Z].*?[A-Z]) 强制至少使用 2 个大写字母。

(?=.*?[a-z].*?[a-z]) 强制至少使用 2 个小写字母。

(?=.*?\d) 强制至少 1 位数字。

^ ... $ 脱字符号和美元符强制匹配整个字符串。

您不需要 (?i) 标志,因为它会使其不区分大小写。

关于filter - 需要 RegExpr 匹配组为 8 个,包含 2+ 大写字母、2+ 小写字母和 1+ 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770216/

相关文章:

django - 你用 Django SuspiciousOperations 做什么?

google-apps-script - Google Sheets 动态过滤可编辑数据

javascript - 根据另一个数组的键过滤数组

python - Django,查询集过滤器ManyToManyField

javascript - Excel like 列标题选项过滤算法

c# - 如何知道电子邮件是否被收件人标记为垃圾邮件

jquery - 简单的查询表搜索过滤器

html - 尝试在联系人中创建所需的空白字段

web-services - 如何检查链接/网址的垃圾邮件

WordPress 通知电子邮件将成为垃圾邮件