正規表現があまりにも私のために正常に動作するようです:これは、プリントアウトし
public static void main(String[] args) throws IOException {
Pattern pat = Pattern.compile("(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[[email protected]!%*#?&])[A-Za-z\\[email protected]!%*#?&]{8,50}");
System.out.println(pat.matcher("#GRDiD1ddddddddd").matches());
System.out.println(pat.matcher("GRDiD1ddddddddd!#").matches());
System.out.println(pat.matcher("GRDiD1d#ddddddd!").matches());
System.out.println(pat.matcher("GRDiD1d#dd#ddddd!").matches());
}
:
ところで
true
true
true
true
を、正規表現は冗長ドル文字が含まれているとに単純化することができます。
(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[[email protected]!%*#?&])[A-Za-z\\[email protected]!%*#?&]{8,50}
あなたはJavaを使用している可能性があります。正しい? –