Javaを使用してパスワード文字列を確認する必要があります。これは検証の要件です。
- 少なくとも1つの番号
- 少なくとも1つの英字
- セットから少なくとも1文字!@#$%^&*()_ + =-〜 `] [{};':"/。>?, <
- 8〜20文字
何度か壁に頭をぶつけてねじ込んだ後、この正規表現を思いついた
if (!password.matches("^(?=.+[0-9])(?=.+[a-zA-Z])(?=.+[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E])[0-9a-zA-Z\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]{8,20}$")) {
}
これはひどくて狂気に見えます。この使命を達成するためのより良い方法はありますか?