請給我正則表達式中用於密碼驗證的代碼,它應該由一個Caps字符,一個整數,一個跟隨符號(@,#,$,%,^,&,+ ,=)和小字符。注意java中的正則表達式和模式編譯
我一直在嘗試使用不同的單獨正則表達式和一個組合正則表達式。
其實我已經有一個正則表達式來評估JavaScript中的所有條件。 我無法在Java後端使用它。我試圖逃脫\
。它也不起作用。
這裏是我的代碼:
Pattern pattern = Pattern.compile("/.*(?=.{6,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/");
Matcher matcher = pattern.matcher("[email protected]");
if(matcher.matches()){
System.out.println("Matched");
}
else{
System.out.println("No mat");
}
原來的JavaScript正則表達式是
/.*(?=.{6,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/
在該\d
給我的錯誤是由於逃逸字符。所以,我在Java版本中增加了另一個\
。
我無法理解發生了什麼問題。
在此先感謝。
你應該舉例說明你試過的東西。 – gpojd 2011-12-27 15:04:51
@anubhava,如果支持,可以很容易地用lookahead來完成。即使沒有環視,你也可以對可能的命令進行排列,雖然在這種情況下它不可行,但這是可能的。 – Qtax 2011-12-27 15:32:56
@Qtax:是的,排列所有命令(並且會有很多),但是可能但不確定如何通過避免這些排列來輕鬆地使用lookahead來完成。 – anubhava 2011-12-27 15:40:10