Android 如何在电子邮件验证中允许特殊字符?

Android 如何在电子邮件验证中允许特殊字符?,android,validation,Android,Validation,我试图在验证用户输入的电子邮件时允许使用特殊字符,但android标准utils.pattern验证在这种情况下不起作用。我已实施以下措施: if(!AppUtils.isValidEmail(edtEmail.getText().toString())){ Toast.makeText(context, "Please enter valid email", Toast.LENGTH_SHORT).show(); return false; }

我试图在验证用户输入的电子邮件时允许使用特殊字符,但android标准utils.pattern验证在这种情况下不起作用。我已实施以下措施:

if(!AppUtils.isValidEmail(edtEmail.getText().toString())){
            Toast.makeText(context, "Please enter valid email", Toast.LENGTH_SHORT).show();
            return false;
}
我的验证功能:

public final static boolean isValidEmail(CharSequence target) {
      return !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();

}

是否有正则表达式或其他方法允许使用特殊字符?

请使用基本正则表达式模式,并根据需要进行调整。针对您的具体问题,允许在电子邮件中使用特殊字符

Pattern pattern = Pattern.compile("^[^@]+@[a-zA-Z0-9._-]+\\.+[a-z._-]+$");
Matcher matcher = pattern.matcher(inputString);
return matcher.matches();
或者您也可以调整中使用的正则表达式

只需添加所需的特殊字符,如
\\\&

public static final Pattern EMAIL_ADDRESS
    = Pattern.compile(
        "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
        "\\@" +
        "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
        "(" +
            "\\." +
            "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
        ")+"
    );

是的,这起作用了。谢谢Vikalp的帮助,但我真的不知道如何调整这个正则表达式。