正则表达式以匹配除特定电子邮件地址之外的电子邮件

时间:2017-10-10 00:15:12

标签: regex

我需要一个与电子邮件地址匹配的正则表达式,但不包括匹配中的特定电子邮件地址

e.g。不匹配(从匹配中排除这些地址);

0.0001*q

匹配所有其他电子邮件地址(包括任何其他有效的电子邮件地址);

sponge.bob@example.com
jim.bob@example.com
billy.bob@example.com

我尝试使用负面的lookbehind表达式,但无法弄清楚如何使其工作(如果可能通过该方法)。能够指定多个被排除的电子邮件是有益的,但至少需要一次排除。

由于

1 个答案:

答案 0 :(得分:2)

(?:^|(?<=\s))                   //appears at start of line or after space
(?!                             //Don't match if it starts with the below
sponge\.bob@example\.com|
jim\.bob@example\.com|
billy\.bob@example\.com
)                               //End exclusions
(                               //Capture group for emails, you don't need this
\w                              //Start with [A-Za-z0-9_]
[\w\.]*                         //Zero or more of [w\.]
@
\w+                             //Start with one or more [A-Za-z0-9_]
\.                              //Forces to have atleast one dot
[\w\.]+                         //followed by one or more of [\w\.]
)                               //End capture group for emails, remove it with the matching group
\b                              //Should end with word boundary.

请参阅演示here.

<强>解释

{{1}}