这些符号应包含在!"#$%&'()*+-./:;<=>?@[\]^_
{|}〜`
但我试图把“这个特殊字符给出错误[编译时错误]
private static final String PASSWORD_PATTERN = "((?=.*[a-z])(?=.*\\d)(?=.*[A-Z])(?=.*["@#$%!%^&*()_+=?/[],.<>|~`'-]).{8,32})";
一个人可以,提前谢谢
答案 0 :(得分:3)
当然,你不能简单地在一个字符串文字中加上一个引号来结束字符串。它与正则表达式无关,无论你以后使用字符串做什么都是一样的。
简单地逃避它:用"
\"
评论中有关新问题的附录:如果您将[
和]
放入角色类(介于[
和]
之间),那么您必须逃脱他们为正则表达式。当您在字符串文字中执行此操作时,会进行双重转义,因为您必须转义\
。而且你还必须在字符类中转义-
。
所以改变
["@#$%!%^&*+=?/[],.<>|~`'-:/<>]
到
["@#$%!%^&*+=?/\\[\\],.<>|~`'\\-:/<>]
答案 1 :(得分:0)
我建议您在尝试使用正则表达式时使用https://www.debuggex.com/。它更容易,并直接告诉您正则表达式是否不正确。