2015-04-22 41 views
1

我需要一個匹配非打印字符的正則表達式。原因是我有一個冰雹垃圾郵件發送者正在濫用我的網絡,並通過使用非打印字符混淆他的主題來越過我的基於PCRE的啓發式過濾器。因此,我創建的任何基於文本的規則都會被忽略,因爲沒有匹配。非打印正則表達式

例如:

常規的基於文本的主題:降低高科技cоsts與clоudcоmputing

混淆的主題:

  • 降低高科技cоsts與clоudcоmputing
  • ReduÑeteÑh用計算機模擬計算
  • 還原與ÑlоudÑоmputing

ÑloudÑomputing

  • RÐμducÐμtÐμchcоststeÑhÑosts什麼我找的是我可以修改,以匹配所有已使用和建設正則表達式的列表,短語的正則表達式。也許,如果我能得到一個匹配主題的正則表達式,我可以將它們與其他匹配頭信息一起進行元編碼,以阻止這些信息。

    任何幫助將不勝感激。

  • +0

    我建議你乾脆扔掉,其主題行中的UTF8提供任何電子郵件編碼。這可以防止除ISO8859-1字符以外的任何內容,以及可以用大多數8位正則表達式進行過濾的字符。 –

    回答

    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."'\/\\[email protected]#$%^&*(){}\[\]?><,+|`~-]+檢查主題是否包含不可打印的字符,並採取行動。 (如果你使用這個,你可能需要添加其他的正則表達式來處理,可與打印的字符來創建垃圾郵件短語)

    Demo with PCRE

    +0

    謝謝你的答案,但不幸的是,我正在使用的引擎不允許非正式字符,即使在正則表達式本身。 有沒有在正則表達式中創建實際字符的正則表達式的另一種方法? – dguard

    +0

    @dguard看看編輯是否有幫助:) –