我在Java中使用正則表達式來檢查密碼字段的輸入。以下是用於檢查密碼的代碼:爲什麼輸入必須接受的字符時會產生錯誤?
final Pattern check = Pattern.compile("^[a-z0-9A-Z!$%*()-_[]{};:@#<>,./?\\|]+$");
if (!check.matcher(password).matches()) {
errors.put("password", "Invalid input");
}
在i提交包含符號等的輸入,例如%,正在生成以下情況例外:
例外
java.util中.regex.PatternSyntaxException:未關閉的字符類,在 附近索引37^[a-z0-9A-Z!$%*()-_ [] {};:@#<>,。/?\ |] + $ ^
我已經在這個相同的代碼中使用了其他正則表達式,它們工作正常......只有這部分給我帶來麻煩。
你們中的任何一個人是否可能知道導致此錯誤的原因?
感謝您的幫助提前!
'''是邏輯的,否則正則表達式在哪裏知道字符類的結束? ;) – fge 2011-12-25 21:45:00