您需要指定最后一部分中允许的字符,而不是点。替换
.{8,16}
具有
[-A-Za-z0-9@#$%^&*_!+=\[\]{}|:',.?/`~\"();]{8,16}
:
^(?:
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)
|
(?=.*[a-z])(?=.*[A-Z])(?=.*[-@#$%^&*_!+=\[\]{}|:',.?/`~"();])
|
(?=.*[a-z])(?=.*\d)(?=.*[-@#$%^&*_!+=\[\]{}|:',.?/`~"();])
|
(?=.*[A-Z])(?=.*\d)(?=.*[-@#$%^&*_!+=\[\]{}|:',.?/`~"();])
)
[-A-Za-z0-9@#$%^&*_!+=\[\]{}|:',.?/`~"();]{8,16}
$
看到了吗
regex demo
.
private static final String PATTERN_PASSWORD_REGEX = new StringBuilder('^(?:')
.append("(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])")
.append('|') // -or-
.append("(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=.*[-@#$%^&*_!+=\\[\\]{}|:â,.?/`~â();])")
.append('|') // -or-
.append("(?=[^a-z]*[a-z])(?=[^0-9]*[0-9])(?=.*[-@#$%^&*_!+=\\[\\]{}|:â,.?/`~â();])")
.append('|') // -or-
.append("(?=[^A-Z]*[A-Z])(?=[^0-9]*[0-9])(?=.*[-@#$%^&*_!+=\\[\\]{}|:â,.?/`~â();])")
.append(')[-A-Za-z0-9@#$%^&*_!+=\\[\\]{}|:â,.?/`~â();]{8,16}$')
.toString();