正则表达式"String regex = "[0-9a-z][email protected][0-9a-z]+.+[0-9a-z]";"
用于测试电子邮件验证。基本上,即时通讯尝试使电子邮件只会匹配这个模式,如果电子邮件以字母数字字符串开头,后跟1 @符号,接着是另一串字母数字字符,然后是1,然后是最后一个一串字母数字字符。什么是失败的是,当我输入一个电子邮件没有字符串后的最后一个字符串,程序将仍然匹配正则表达式字符串。我该怎么做才能使之后必须有另一串字母数字。整个代码是:正则表达式java模式不验证?
import java.util.Scanner;
import java.util.regex.*;
public class Regex
{
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.println("Please enter your Email");
String mail = input.nextLine();
String regex = "[0-9a-z][email protected][0-9a-z]+.+[0-9a-z]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(mail);
if(m.find()) {
System.out.println("VALID");
} else {
System.out.println("INVALD");
}
}
}
。+会给你“至少一个任意字符”。我想你的意思是在最后一个括号后面加上“+”。 –
对于这类问题,http://www.regexper.com/是我的首选工具。 –
相关http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address – andersoj