Java 使用正则表达式限制特殊字符

Java 使用正则表达式限制特殊字符,java,regex,Java,Regex,我想让我的正则表达式匹配任何带有“特殊”字符的字符串,而不是和/。其他特殊字符在某种黑名单上。然而,在运行时,我得到一个非法重复错误。我如何解决这个问题 Pattern regex = Pattern.compile("!@#$%^&*()-_+=|\\}]{[\"':;?><,"); Matcher matcher = regex.matcher(key); if (matcher.find()) { return false; } Pattern regex=P

我想让我的正则表达式匹配任何带有“特殊”字符的字符串,而不是
/
。其他特殊字符在某种黑名单上。然而,在运行时,我得到一个
非法重复
错误。我如何解决这个问题

Pattern regex = Pattern.compile("!@#$%^&*()-_+=|\\}]{[\"':;?><,");
Matcher matcher = regex.matcher(key);
if (matcher.find()) {
    return false;
}

Pattern regex=Pattern.compile(“!@#$%^&*()-“+=|\\}]{[\”:;?>也许只指定允许的内容而不是拒绝的内容更好:

Pattern regex = Pattern.compile ("^[\\w\\s\\./]*$");
if (!regex.matcher(key).matches ()) return false;

这只允许使用字母、数字、空格、点('.')和斜杠('/')。

还请包含一个标记,指定您正在使用的编程语言或工具。谢谢。您救了我一天。