2014-01-17 51 views

回答

-1

试试这个:

^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)* @[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;

希望这有助于你

或者使用下面的类

org.apache.commons.validator.routines.EmailValidator 

使用下面的方法

isValid(String email)返回布尔

+1

不匹配'ABC @ com'这是一个有效的地址,请参阅:HTTP:/ /en.wikipedia.org/wiki/Email_address#Valid_email_addresses – Toto

+2

甚至不符合OP要求'bob at gmail dot com'的内容。 – devnull

3

更改此:

[at|@|(at)] 

到:

(?:at|@|\(at\)) 

[dot|\\.|dt] 

(?:dot|\\.|dt) 

[...]character class(?:...)non capture group

整个正则表达式为:

([a-zA-Z0-9.]+)\\s*(?:at|@|\(at\))\\s*(\\w+)\\s*(?:do?t|\\.)\\s*(\\w+{1,3}) 

如果你想匹配的子域:

([a-zA-Z0-9.]+)\\s*(?:at|@|\(at\))\\s*(?:\\w+\\s*(?:do?t|\\.)\\s*)+(\\w+{1,3}) 
+1

并且'(?:dot | \\。| dt)'到'(?:do?t | \\。)':p –

+0

@ Jonny5:没错。 – Toto

+0

非常感谢...作为跟进 我已经写了上面的RegEx来获取电子邮件地址。 这成功地拿起gmail点鲍勃来 但是,它并没有在GM点的Gmail点com回暖,鲍勃(摄像以下电子邮件存在[email protected]) 此外,它也产生了一些如果文字中出现“at”字样,则为误报。例如字符串“运行时运行。它”将作为电子邮件返回[email protected] 有关如何捕获电子邮件的第二个变体并避免捕获[email protected]的任何建议? – user3206133

相关问题