我正在构建一个验证用户名的函数,在这种情况下,我只想接受字母字符。我将提供的用户输入与此正则表达式进行匹配:
[1-9!@#$%&*()_+=|<>?{}\\[\\]~-,]
这是使用正则表达式的方法:
public static String purgeInvalidLogin(String failedLogin, String pattern) {
Pattern special = Pattern.compile (pattern);
String purgedLogin = failedLogin.replaceAll(special.pattern(), ""); // remove any special characters before moving on
purgedLogin = StringUtils.deleteWhitespace(purgedLogin);
return purgedLogin;
}
但是,当尝试运行它时,我收到此消息:
索引 25 附近的非法字符范围 [!@#$%&*()_+=|<>?{}[]~-,] ^
仅在我添加逗号后才发生。我也试过表达 [!@#$%&*()_+=|<>?{}[]~-\,] (转义逗号)无济于事。我想知道如何正确使用正则表达式来排除逗号使用我上面的方法。
提前致谢。