为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 java 在字符串中只允许 !@#$%^&*

如何使用 java 在字符串中只允许 !@#$%^&*

慕森卡 2023-02-23 10:27:32
我只想允许上面提到的特殊字符。我试过这个private final Pattern hasSpecialChar = Pattern.compile("[!@#$%^&*]");if (!hasSpecialChar.matcher(password).find()) {    return "String allows only !@#$%^&* special characters";}但它也允许其他特殊字符。任何人都可以帮助我创建一个合适的正则表达式。
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

尝试这个:


private final Pattern hasSpecialChar = Pattern.compile("[^A-Za-z0-9!@#$%^&*]+");

if (hasSpecialChar.matcher(password).find()) {

    return "String allows only !@#$%^&* special characters";

}


查看完整回答
反对 回复 2023-02-23
?
BIG阳

TA贡献1859条经验 获得超6个赞

Mabe 下面的代码片段将帮助您:


private final Pattern hasSpecialChar = Pattern.compile("[^!@#$%^&*]");

if (hasSpecialChar.matcher(password).find()) {

        return "String allows only !@#$%^&* special characters";

}


查看完整回答
反对 回复 2023-02-23
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您的代码片段正在查看特殊字符是否至少出现一次。


对此的一个简单修正是否定检查——即寻找至少一个不在可接受字符集中的非特殊字符:


private final Pattern hasSpecialChar = Pattern.compile("[^!@#$%^&*]");

if (hasSpecialChar.matcher(password).find()) {

    return "String allows only !@#$%^&* special characters";

}

请注意,此答案假定您只想允许这些特殊字符,而在输出中不允许使用其他字母数字字符。


查看完整回答
反对 回复 2023-02-23
  • 3 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号