gpt4 book ai didi

java - 正则表达式检查包含空格和特殊字符的字符串

转载 作者:行者123 更新时间:2023-12-01 14:07:33 24 4
gpt4 key购买 nike

我有以下正则表达式:

String PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,12})";

然后我像这样检查声明:

Pattern pattern = Pattern.compile(PASSWORD_PATTERN);
Matcher matcher = pattern.matcher(password);
if(!matcher.matches()) {
// error
}

如何调整此模式以包括检查任何空格和特殊字符?如果密码包含任何空格或任何特殊字符,则 match() 方法应该失败。

最佳答案

如果你只想拒绝空格,你可以使用:

(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])\\S{6,12}

\\S 将只匹配非空格。

另外,您可能不需要外括号。

编辑:没有看到其他部分。

如果要拒绝特殊字符,可以将 \\S 更改为否定类。使用这个虽然意味着你必须使用: [^\\s ... ]

例如,假设不应该有任何 ? 或空格。这变成:

(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[^\\s?]{6,12}

如果你也不想要 !:

(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[^\\s?!]{6,12}

关于java - 正则表达式检查包含空格和特殊字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20664680/

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