日期:2014-05-20  浏览次数:20629 次

验证邮箱的正则表达式,有个问题好像,求解

import java.util.regex.*;


public class TestMatches {

public static void main(String[] args) {
// TODO Auto-generated method stub
String []mails={"zpcandzhj@163.com","ssw@126","zp2ss@njue.cn"};
String mailRegEx="\\w{1,20}@\\w+\\.(com|cn|org|net|gov)";
Pattern mailPattern=Pattern.compile(mailRegEx);
Matcher matcher=null; 
for(String mail:mails){
if(matcher==null){
matcher =mailPattern.matcher(mailRegEx);
}else{
matcher.reset(mail);
}
if(matcher.matches()){
System.out.println(mail+"是个有效的邮件地址!");
}else{
System.out.println(mail+"不是个有效的邮件地址!");
}

}

}
}

正则表达式 Java

------解决方案--------------------
"\w{1,20}@\w+\.(com
------解决方案--------------------
cn
------解决方案--------------------
org
------解决方案--------------------
net
------解决方案--------------------
gov)"
------解决方案--------------------
修改for循环:
for (String mail : mails)
        {
            matcher = mailPattern.matcher(mail);
            if (matcher.matches())
            {
                System.out.println(mail + "是个有效的邮件地址!");
            }
            else
            {
                System.out.println(mail + "不是个有效的邮件地址!");