有人可以告诉我为什么以下正则表达式没有取出以下字符串:" bob at gmail dot com"?
([a-zA-Z0-9|\\.]+)(\\s*?)[at|@|(at)](\\s*?)(\\w+)(\\s*?)[dot|\\.|dt](\\s*?)([\\w+]{1,3})
答案 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)
返回布尔值