String.matches()不适用正则表达式

时间:2017-10-24 18:46:37

标签: java regex

我有下一封电子邮件:mail-q7hplbmer93rhtzxyd85-4m3fscngz5c9xwzy63db-event@mydomain.com 我正在用正则表达式检查它:

    if(email.matches("mail-[A-Z0-9]+-[A-Z0-9]+-event@mydomain.com")) {
        return true;
    }

但这个正则表达式永远不会匹配。 (在javascript中它完美无缺)。

2 个答案:

答案 0 :(得分:4)

通常,在不修改默认行为的情况下,正则表达式区分大小写......

' Q'在' A'之间和' Z' ...

答案 1 :(得分:1)

您需要不区分大小写的模式或修改您的正则表达式以支持小写字母。要使用不区分大小写的Pattern,请使用:

String email = "mail-q7hplbmer93rhtzxyd85-4m3fscngz5c9xwzy63db-event@mydomain.com";
Pattern pattern = Pattern.compile("mail-[A-Z0-9]+-[A-Z0-9]+-event@mydomain.com", Pattern.CASE_INSENSITIVE);
System.out.println(pattern.matcher(email).matches());

输出: