用于电子邮件匹配的Java中的RegEx

时间:2014-01-17 18:36:51

标签: java regex email

([a-zA-Z0-9 \。] +)\ s *(?:at | @ |(at))\ s *(\ w +)\ s *(?:do?t | \。 )\ S *(\ W +)(\ S *(?:做T |?\)\ S *(\ W +))

我已经写了上面的RegEx来接收电子邮件地址。

这成功地在gmail dot上获得了bob

然而,它没有拿起,在gm dot gmail dot com上浮雕(成像以下电子邮件存在bob@gm.gmail.com)

此外,如果单词“at”在文本中,它也会产生一些误报。例如,字符串“在运行时运行。它将”作为电子邮件返回run@runtime.it

有关如何捕获电子邮件的第二个变体并避免捕获run@runtime.it的任何建议?

2 个答案:

答案 0 :(得分:0)

请参阅here

可能尝试使用表达式 - > ^ [A-Z0-9 ._%+ - ] + @ [A-Z0-9 .-] +。(?:[AZ] {2} | com | org | net | edu | gov | mil | biz | info | mobi | name | aero | asia | jobs | museum)$

答案 1 :(得分:0)

有两种方法可以做到这一点:

  1. 别。它可能会失败的原因有很多。找出它是否是有效电子邮件地址的最佳方法是实际发送电子邮件。或者您知道mail+tag@example.com是有效地址吗?还有更多的例子。 See here
  2. 不要自己动手,重新使用像apache commons这样的现有库