正则表达式的正则表达式(openwebmail)

时间:2016-04-27 09:31:39

标签: regex regex-negation

我需要发现所有电子邮件都不是info@example.com来配置openwebmail正则表达式

结果:

abbb@example.com --  true

76312783dd@example.com -- true

8734289347@test.it -- true

info@example.com -- false

2 个答案:

答案 0 :(得分:0)

这是我的答案:

^(?!info@example\.com$)((\w+|\.)+@\w+(\.\w+)+)$

这将匹配除info@example.com之外的示例中的所有内容,以及一些有用的内容,例如test.example@mail.co.uk,如下例所示:

Click here for the example on Regex101

修改

您还可以将正则表达式更改为:

 ^(?!info@example\.com$)((\w+\.?)+@\w+(\.\w+)+)$

要禁止发送电子邮件:info..example@mail.com,但由于您只是搜索电子邮件,因此您不太可能会收到格式为info..example@mail.com的电子邮件

<强>击穿

  • ^字符串开头
  • (?!)否定前瞻
  • info@example\.com$ info.example.com的字面匹配,直到字符串结尾。
  • (\w+|\.)+使用字母和数字捕获组1次或更多次,或点数,1次或更多次将匹配example..test@mail.com
  • (\w\.?)+使用字母1次或更多次捕获组,并使用以下可选点,1次或多次。 不匹配example..test@mail.com
  • @\w+按字面意思匹配@,以及之后的任何字母或数字。
  • (。\ w +)+匹配一个点及其后面的任何字母1次或更多次。点不是可选的,因为像example@test.com.这样的电子邮件无效。
  • $字符串结尾

答案 1 :(得分:0)

使用这个很棒的技巧!

transform

演示: https://regex101.com/r/zJ5nY5/1

说明:

  1. ^info@example\.com$|^(\w+@\w+\.\w+)$ 并获取第1组值。这是有史以来最流行的正则表达技巧之一。这样,如果您获取第1组值,系统会自动忽略a|b|(c|d)a,您只会批准bc
  2. d是我们通常在单词中找到的任何字符。