【发布时间】:2013-04-24 02:29:46
【问题描述】:
我有一个电子邮件地址验证正则表达式,我在这样的代码中使用它:
public class Test {
public static void main(String[] args) {
try {
String lineIwant = "myname@asl.ramco-group.com";
String emailreg = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Boolean b = lineIwant.matches(emailreg);
if (b == false) {
System.out.println("Address is Invalid");
}else if(b == true){
System.out.println("Address is Valid");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
在示例中的这个特定电子邮件地址上,布尔值返回 false,而这是一个有效的客户电子邮件地址。
我怀疑这是因为 ramco 和 group 之间的连字符,因为当我删除它时,布尔值返回 true。
如何更改我的正则表达式以适应这样的电子邮件地址?
【问题讨论】:
-
不要重新发明轮子 - 使用
EmailValidator之类的东西。 -
对于您的信息,我已经查看了该问题,并且正则表达式在此特定电子邮件 ID 上也没有验证
-
方法之一here。
-
@DuncanJones:你介意写一个答案吗?
-
我不同意副本,所以我重新打开了。我也不理解反对票,因为您提供了很好的示例代码并清楚地描述了您的目标。对我投赞成票。
标签: java regex validation email