我需要发现所有电子邮件都不是info@example.com
来配置openwebmail
正则表达式
结果:
abbb@example.com -- true
76312783dd@example.com -- true
8734289347@test.it -- true
info@example.com -- false
答案 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+
按字面意思匹配@
,以及之后的任何字母或数字。example@test.com.
这样的电子邮件无效。$
字符串结尾答案 1 :(得分:0)
使用这个很棒的技巧!:
transform
演示: https://regex101.com/r/zJ5nY5/1
^info@example\.com$|^(\w+@\w+\.\w+)$
并获取第1组值。这是有史以来最流行的正则表达技巧之一。这样,如果您获取第1组值,系统会自动忽略a|b|(c|d)
和a
,您只会批准b
和c
。d
是我们通常在单词中找到的任何字符。