gpt4 book ai didi

尝试排除逗号时,Java RegEx 模式无效

转载 作者:行者123 更新时间:2023-11-30 04:14:56 25 4
gpt4 key购买 nike

我正在构建一个函数来验证用户名,在本例中我只想接受字母字符。我将提供的用户输入与此正则表达式进行匹配:

[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;
}

但是,当尝试运行此程序时,我收到以下消息:

Illegal character range near index 25 [!@#$%&*()_+=|<>?{}[]~-,] ^

只有在我添加逗号后才会发生。我还尝试了表达式 [!@#$%&*()_+=|<>?{}[]~-\,] (转义逗号),但无济于事。我想知道如何正确使用正则表达式来利用上面的方法排除逗号。

提前致谢。

最佳答案

转义其前面的连字符。只要您在其后添加另一个字符(逗号),它就会被解释为定义字符范围。

[1-9!@#$%&*()_+=|<>?{}\\[\\]~\\-,]

关于尝试排除逗号时,Java RegEx 模式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com