【问题标题】:Regex Question (detecting spam)正则表达式问题(检测垃圾邮件)
【发布时间】:2009-12-02 12:34:38
【问题描述】:

我收到了一种奇怪的垃圾邮件,其中电子邮件正文仅包含以下内容:

4606142 5801100 2704743

如何用正则表达式 grep?

它是 3x7 的数字,用空格分隔。

谢谢

【问题讨论】:

    标签: regex spam


    【解决方案1】:

    试试这个

    (\d{7} ?){3}
    

    或者,如果那个空格有影响(就像 Al 在 cmets 中所说的那样)

    (\d{7} ){2}\d{7}
    

    【讨论】:

    • 或者(\d{7} ){2}\d{7},如果你想在没有结尾空格的情况下捕捉它
    • 使用? 将结尾空格设为可选
    【解决方案2】:

    试试这个

    [0-9]{7}\s[0-9]{7}\s[0-9]{7}
    

    [0-9]{7}:字符 '0' 到 '9' 出现 7 次

    \s:空白字符

    【讨论】:

      【解决方案3】:

      您可能想要捕获数字和空格的任意组合:

      ^[\d\s]*$
      

      【讨论】:

        【解决方案4】:

        这样可以吗? (\d{1,7}\s{0,})+

        我用量词结束\s 的原因是当它到达行尾时它会失败,之后的最后一个字符可能不是空格而是回车符。

        希望这会有所帮助, 此致, 汤姆。

        【讨论】:

        • 另外,你为什么不使用外部垃圾邮件过滤程序来捕获它,例如从 Thunderbird,你可以点击指示主题、发件人、日期和时间的行,那里有一个标记通过单击将其标记为垃圾邮件,它由在我看来代表火焰的图标表示。雷鸟下次会记得的。听起来,您似乎需要训练您的电子邮件客户端识别垃圾邮件并采取适当的措施,而不是使用正则表达式。
        猜你喜欢
        • 1970-01-01
        • 2021-07-31
        • 2019-05-19
        • 2018-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 2016-02-26
        相关资源
        最近更新 更多