for(String paramName:paramNames){
String regexString = regexPair.get(paramName);
try{
System.out.println(regexString);
Pattern p = Pattern.compile(regexString);
Matcher m = p.matcher(paramMap.get(paramName)[0]);
status = m.matches();
}catch(Exception e)
{
e.printStackTrace();
}
if(!status)
break;
}
どこregexSring
に価値があるか
"^(?!.*[^A-Za-z0-9@])((?=.*\\d)(?=.*[a-z]).{6,20})$"
の値はregexString
mysql db から取得され、マップに入力され、paramMap.get(paramName)[0]
値"dssf55454"
がありますが、true を返すはずなのに false を返しています。
次のサンプルプログラムを書くと
Pattern p = Pattern.compile("^(?!.*[^A-Za-z0-9@])((?=.*\\d)(?=.*[a-z]).{6,20})$");
Matcher m = p.matcher("mal4554SD");
status = m.matches();
System.out.println(status);
true を返します。なんで?