java - 正则表达式在 validator 中有效,在java代码中无效

标签 java android regex

我在使用此正则表达式检查电子邮件地址时遇到问题 ^([^@\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/

相关文章:

java - JAXB Java 生成 XML,为什么小写?

android - 错误 : This Android SDK requires Android Developer Toolkit version 22. 6.1 或更高版本

python - 从数据框中提取字符串

java - 判断string是否可以转为int数组

PHP 正则表达式字母数字受非字母数字限制

java - Android 的 Apache BasicCookieStore 上的 ConcurrentModificationException

java-NoClassDefFoundERROR : LogManager

java - 使用 PDFBox 读取文本和图像位置(x.y 坐标)

java - 我可以在 android 中收集应用程序通知吗?

android - 如何增加android中搜索栏拇指的可点击区域?