正文检查表达式中的正则表达式后缀错误

正文检查表达式中的正则表达式后缀错误

包含以下内容的电子邮件应被阻止:blablabla.icu/blabla。我对阻止包含以 .icu/ 结尾的链接的电子邮件的规则感到困惑:

/.*\.icu\/*./ Reject 

问题是,任何包含.icuabacadada 的电子邮件(包括附件)也会被阻止。

看起来 / 之前的第二个 \ 并没有按预期发挥作用。有什么建议可以解决这个问题吗?

答案1

让我从你的问题中取出正则表达式:

/.*\.icu\/*./
 ^^                  (A) this part is not needed
   ^^^^^             (B) this matches .icu
        ^^^          (C) this matches 0, 1, 2 or any number of /
           ^         (D) this matches 1 character (any of them)

为了得到正确的正则表达式,你需要

  • 删除 A(以提高性能)
  • 保持B
  • 修改C来描述一个/字符
  • 删除 D(我推测它被错误地放在这里,也许你混淆.**.

因此正确的正则表达式是:

/\.icu\//

答案2

该构造\/*匹配任何斜线,包括无斜线。也许/.*\.icu\/.*/ Reject这就是您想要匹配仅包含“.icu/”的地址的原因。我不熟悉后缀正则表达式,但我猜转义的斜线是正确的。

编辑

改进的正则表达式应该是/\.icu\// Reject(感谢 asdmin)

相关内容