无效的正则表达式 java:未闭合的字符 class
Invalid regular expression java : unclosed character class
我正在尝试在 java 中编写 emailValidator 函数,但我遇到了问题:
public static boolean EmailValidator(String mail) {
Pattern pattern;
Matcher matcher;
pattern = Pattern.compile("^[A-Za-z0-9\]{2,2}(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]{2,2}(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,4})$");
matcher = pattern.matcher(mail);
return matcher.matches();
}
错误
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 89
^[A-Za-z0-9\]{2,2}(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]{2,2}(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,4})$
请谁能告诉我我必须做些什么来修复它,非常感谢
你已经转义了开头的结束字符class字符:
^[A-Za-z0-9\]
请记住,在字符串解释之后,这将变为:
^[A-Za-z0-9\]
因为您可能想在此处包含反斜杠,请尝试对其进行双重编码:
^[A-Za-z0-9\\]
成为转义的反斜杠:
^[A-Za-z0-9\]
在这里[A-Za-z0-9\]
一定是[A-Za-z0-9\\]
在你的第一部分
[A-Za-z0-9\]
应该改为
[A-Za-z0-9\\]
我正在尝试在 java 中编写 emailValidator 函数,但我遇到了问题:
public static boolean EmailValidator(String mail) {
Pattern pattern;
Matcher matcher;
pattern = Pattern.compile("^[A-Za-z0-9\]{2,2}(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]{2,2}(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,4})$");
matcher = pattern.matcher(mail);
return matcher.matches();
}
错误
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 89
^[A-Za-z0-9\]{2,2}(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]{2,2}(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,4})$
请谁能告诉我我必须做些什么来修复它,非常感谢
你已经转义了开头的结束字符class字符:
^[A-Za-z0-9\]
请记住,在字符串解释之后,这将变为:
^[A-Za-z0-9\]
因为您可能想在此处包含反斜杠,请尝试对其进行双重编码:
^[A-Za-z0-9\\]
成为转义的反斜杠:
^[A-Za-z0-9\]
在这里[A-Za-z0-9\]
一定是[A-Za-z0-9\\]
在你的第一部分
[A-Za-z0-9\]
应该改为
[A-Za-z0-9\\]