次のようなものを使用できます。
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d=:;<>,~!@#\\$%/^&)(\[\]+-]{8,}$
ここでテストします。ここで「ポジティブ・ルックアヘッド」と呼ばれる「?=」についても学びたいと思うかもしれません。つまり、3 つの先読み (.*\d
および.*[a-z]
および.*[A-Z]
) がすべて一致する (および破棄される) 場合、メインの正規表現[a-zA-Z\d=:;<>,~!@#\\$%/^&)(\[\]+-]{8,}
も一致する可能性があります。