用于电子邮件检测的Java RegEx

时间:2014-01-17 10:19:54

标签: java regex

有人可以告诉我为什么以下正则表达式没有取出以下字符串:" bob at gmail dot com"?

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

2 个答案:

答案 0 :(得分: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 :(得分:-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)返回布尔值