不可打印的正则表达式

时间:2015-04-22 03:30:50

标签: regex pattern-matching pcre spam-prevention heuristics

我需要一个匹配不可打印字符的正则表达式。原因是我有一个hailstorm垃圾邮件发送者滥用我的网络,并通过使用不可打印的字符混淆他的主题来超越我的基于PCRE的启发式过滤器。因此,我创建的任何基于文本的规则都被绕过,因为没有匹配项。

例如:

基于常规文本的主题:使用cléudcnmputing减少技术支持

混淆的主题:

  • 通过clоudcоmputing
  • 减少技术支持
  • 用ÑlоudÑоmputing减少其他人的行为
  • 用ÑloudÑomputing
  • 减少对抗
  • RÐμducÐμtÐμchcоstswithÑlоudÑоmputing

我正在寻找的是一个正则表达式,我可以修改它以匹配所有已使用的短语并构建正则表达式列表。

也许,如果我能得到一个与主题匹配的正则表达式,我可以将它们与其他匹配的标题信息一起元素化,以阻止这些消息。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容进行匹配。

(Reduce|ReduÑe|Rеducе)\s*(tech|teÑh|tеch)\s*
(cоsts|Ñosts)\s*(with)\s*(clоud|Ñlоud|Ñloud)\s*
(cоmputing|Ñоmputing|Ñomputing)

您可以添加在特定群组中使用的唯一关键字(缩小,技术等),上述正则表达式处理可以使用关键字制作的不同短语组合。

例如,上面的正则表达式使用给定的关键字限制3x3x2x1x3x3(162种方式)的垃圾邮件。

编辑:您可以使用[^\w\s."'\/\\=!@#$%^&*(){}\[\]?><,+|`~-]+检查主题是否包含不可打印的字符,并对其执行操作。 (如果您使用此功能,则可能需要添加其他正则表达式来处理可使用可打印字符创建的垃圾短语)

Demo with PCRE