gpt4 book ai didi

java - 正则表达式“符号不起作用

转载 作者:行者123 更新时间:2023-12-01 22:58:31 29 4
gpt4 key购买 nike

  • 密码不得匹配或包含姓氏。
  • 密码必须包含至少 1 个特殊字符。
  • 密码必须包含至少 1 个数字字符。
  • 密码必须至少包含 2 个字母字符。
  • 密码必须包含至少 1 个大写字母。
  • 密码不得匹配或包含用户 ID。
  • 密码不得匹配或包含名字。
  • 密码不得包含以下字符:!
  • 密码不得超过 25 个字符。
  • 密码长度必须至少为 8 个字符。
  • 密码必须包含至少 1 个小写字母。

这些是 !"#$%&'()*+-./:;<=>?@[\]^_ 中应包含的符号{|}~`

但我试图输入“这个特殊字符,它会给出错误[编译时错误]

private static final String PASSWORD_PATTERN = "((?=.*[a-z])(?=.*\\d)(?=.*[A-Z])(?=.*["@#$%!%^&*()_+=?/[],.<>|~`'-]).{8,32})";

可以帮忙吗,提前致谢

最佳答案

当然,您不能简单地在字符串文字中添加引号来结束字符串。而且它与正则表达式无关,无论您稍后对字符串执行什么操作,都是一样的。

简单地转义它:将 " 替换为 \"

<小时/>

关于评论中新问题的附录:如果将 [] 放在字符类中(即在 [ 之间) >]),那么您必须为正则表达式转义它们。当您在字符串文字中执行此操作时,会产生双重转义,因为您必须转义 \。并且您还必须转义字符类中的 -

所以改变

["@#$%!%^&*+=?/[],.<>|~`'-:/<>]

["@#$%!%^&*+=?/\\[\\],.<>|~`'\\-:/<>]

关于java - 正则表达式“符号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23708628/

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