我在使用此正则表达式检查电子邮件地址时遇到问题 ^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2 ,})$
我已经尝试过这个正则表达式 validator :https://regex101.com并且工作没有问题,但是在java中当我添加像这样的反斜杠时 "^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z ]{2,})$"
不起作用。
为了匹配,我使用以下代码:
public boolean validateEmail(String email) {
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
最佳答案
要在正则表达式中使用不区分大小写的修饰符,您可以使用 Pattern.CASE_INSENSITIVE
编译模式,或者在开头使用内联修饰符 (?i)
的模式。
String email_pattern = "(?i)^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$"
或
Pattern ptrn = Pattern.compile(EMAIL_PATTERN, Pattern.CASE_INSENSITIVE)
请注意,所有不区分大小写的 Android 正则表达式均支持 Unicode。请参阅Android regex syntax reference :
Note that on Android,
UNICODE_CASE
is always on: case-insensitive matching will always be Unicode-aware.
关于java - 正则表达式在 validator 中有效,在java代码中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026755/