Java 电子邮件验证程序出错

Java 电子邮件验证程序出错,java,email,Java,Email,我已经编写了一个Java程序来验证电子邮件地址,但是这个程序不能正常工作。 例如:无论何时我们将输入设为“1”(不包括双引号),我们都会将输出设为“true”,但正确的输出必须为“false”。 请帮忙,我哪里出了问题 /*This is a java program to verify email address*/ import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern

我已经编写了一个Java程序来验证电子邮件地址,但是这个程序不能正常工作。 例如:无论何时我们将输入设为“1”(不包括双引号),我们都会将输出设为“true”,但正确的输出必须为“false”。 请帮忙,我哪里出了问题

/*This is a java program to verify email address*/

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmailVerifyer {

    public boolean isEmail(String email) {
        Pattern p = Pattern
            .compile("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,3})$");
        Matcher m = p.matcher(email);
        if (!m.matches())
            return true;
        else
            return false;

    }

    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter an email which you would like to verify for correctness: ");
        String email = scanner.nextLine();
        EmailVerifyer emailVerifyer = new EmailVerifyer();
        System.out.println("Output: ");
        System.out.println(emailVerifyer.isEmail(email));
    }
}
替换

if(!m.matches())

替换

Pattern p = Pattern.compile("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,3})$");


这只是一个字符,但要使其正常工作,最小的改动是:)
Pattern p = Pattern.compile("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,3})$");
Pattern p = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");