我正在尝试使用与以下情况匹配的正则表达式创建垃圾邮件过滤器。
- 有一组正好 8 个字母数字字符要匹配。
- 它必须包含 2 个或多个大写字母;
- 并且必须包含 2 个或更多小写字母;
- 并且它必须包含 1 个或多个数字。
到目前为止,我所能想到的就是:
(?i)[A-Za-z0-9]{8}
我的代码确实匹配 8 个混合大小写组,但不强制大写或小写或指定每种类型必须出现多少次。因此,我将它与相关消息中始终存在的其他必备要素结合在一起。
这是我试图检测的模式示例:
WbNDSk9e
这是垃圾邮件 URL 的一部分。我见过的其他组遵循相同的模式,即每个 UC 和 LC 字母至少 2 个,以及 1 个或多个数字,并且总是正好有 8 个字符。我还没有看到其他字符或变体。
据我所知,我能使用的唯一开关是使用 (?i) 打开大小写敏感。我在一些回复中看到的其他一些开关在我使用的程序中不起作用。我是否对单行 RegExpr 规则要求太多?
我目前使用 RegEx Match 来测试我的规则,而我的反垃圾邮件程序使用相同的引擎。