电子邮件列表的正则表达式模式

时间:2012-11-30 15:08:07

标签: java regex

对于以" "分隔的电子邮件,我需要有效的正则表达式,并以@a.comb.com

结尾

例如:

有效的电子邮件string"email1@a.com email2@b.com email3@a.com"

无效的电子邮件string"email1@a.com email2@b.com email3@c.com"

5 个答案:

答案 0 :(得分:4)

我不一定认为regexp是一种可扩展且可维护的解决方案。我宁愿:

  1. 在空格上拆分列表(可能在.com / .org等之前的空格上)。
  2. 提取域名帖子 - @
  3. 将此与白名单(或黑名单)进行比较
  4. 我非常喜欢正则表达式,但我并不总是认为它们是解决方案。有关此问题的讨论,请参阅here,并注意以下内容!

      

    有些人在遇到问题时会想“我知道,我会用   正则表达式。“现在他们有两个问题。

答案 1 :(得分:1)

你可以尝试这个表达式:

^(( |^)[^ @]+@[ab]\.com)+$
//  ^    ^   ^  ^    ^
//  |    |   |  |    +- The mandatory .com   
//  |    |   |  +------ Either a or b
//  |    |   +--------- An @ sign
//  |    +------------- Anything but space or @ repeated at least once
//  +----------------------- Preceded by a space or the beginning of line

答案 2 :(得分:0)

(email[1-3]\@[ab].com )*email[1-3]\@[ab].com

(用适合你的东西取代[1-3]和[ab])。

答案 3 :(得分:0)

试试这个: 。^( @(A | B).COM(| \ S) $

Permalink - 尝试输入无效的字符串,例如“c.com”,并看到它也有效

Regexpal是一个很好的简单工具,可以开始为正在尝试解决的任何问题制作正则表达式!

答案 4 :(得分:0)

[A-Za-z0-9_.-]+@[ab]\.com( [A-Za-z0-9_.-]+@[ab]\.com)*

如果您想要更具限制性,可以更改[A-Za-z0-9_.-]+部分。