正規表現を使用して最小 5 文字を含むパスワードを検証しているときに、いくつかの問題に直面しました。
以下のように非常に単純な正規表現を使用しています。
String PASSWORD_PATTERN_MIN_CHARS = "(?=.*[a-z|A-Z]{5,}).{8,}";
正規表現によると、パスワードには最低 5 文字が含まれている必要があり、最低 8 文字がパスワードの長さになります。
"aasaT124"
文字列に対しては正常に機能しています。しかし、失敗し"aa12sa4T"
ます。
明らかに違いは、文字が連続している場合にのみ正規表現が一致することです。
検証が失敗した文字列には、最小 5 文字も含まれています。