使用Regex限制特殊字符

时间:2013-03-05 05:52:59

标签: java regex

我希望我的正则表达式匹配除./以外的“特殊”字符的任何字符串。其他特殊字符属于黑名单。但是,在运行时,我收到Illegal repetition错误。我该如何解决?

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

1 个答案:

答案 0 :(得分:1)

可能最好只指定允许的内容而不是拒绝的内容:

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

这只允许字母,数字,空格,点('。')和斜线('/')。