Python Regex垃圾邮件过滤器

时间:2014-10-13 20:45:24

标签: python regex

我正在开发一个反垃圾邮件聊天机器人,并且一直在使用以下Regex来抓住垃圾邮件发送者。

spam = re.compile(ur'(?:\b(\w+)\b) (?:\1(?: |$))+')

但是,问题在于,当同一个单词重复两次时会触发。我怎么做到这一点,如果这个词总共重复4次而不仅仅是2次呢?

感谢高级!

1 个答案:

答案 0 :(得分:0)

这是连续4次 更一般地说,您可以用空格[ ]替换空格\s+并允许一些分离。

 # \b(\w+)(?:[ ]\1(?=[ ]|$)){3}

 \b 
 ( \w+ )                # (1), One
 (?:                    # Plus
      [ ] 
      \1                # Three
      (?= [ ] | $ )
 ){3}
                        # Four Total