java正則表達(dá)式強(qiáng)密碼

要求:

1.必須包含數(shù)字、大小寫(xiě)字母
2.密碼位數(shù)在8-16位

    public static boolean checkPas(String pas) {
        Pattern pattern = Pattern.compile("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$");
        Matcher matcher = pattern.matcher(pas);
        return matcher.matches();
    }

解釋一下:

  • (?=.*\d) :表示必須包含數(shù)字
  • (?=.*[a-z]):表示必須包含小寫(xiě)字母
  • (?=.*[A-Z]):表示必須包含大寫(xiě)字母
  • .{8,16}:表示任意字符重復(fù)8-16次

需要注意的是為什么使用(?=.*\\d) 便可以保證一定會(huì)存在數(shù)字呢?

首先要知道?=表示的是零寬斷言。?=ing即表示匹配以ing結(jié)尾的字符串。例如doing,便是匹配其中的do,注意并不會(huì)匹配ing。
(?=.*\\d)又代表什么意思呢?
匹配一個(gè)字符串,該字符串后接任意字符+數(shù)字。這個(gè)字符串實(shí)際上就是空字符串。因此在正則表達(dá)式"^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$"中。
(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])都表示匹配那樣一個(gè)空字符串。也就意味著我們的密碼必須包含數(shù)字、大小寫(xiě)字母。后續(xù)的.{8,16}則僅代表重復(fù)8到16次的任意字符。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號(hào),空格,換行符,漢字等...
    獅子挽歌閱讀 2,278評(píng)論 0 9
  • 一、什么是正則表達(dá)式 正則表達(dá)式,又稱正規(guī)表示法,是對(duì)字符串操作的一種邏輯公式。正則表達(dá)式可以檢測(cè)給定的字符串是否...
    木馬不在轉(zhuǎn)閱讀 2,209評(píng)論 8 21
  • 參考原文:http://www.admin10000.com/document/5944.html 一、什么是正則...
    Louis_hey閱讀 884評(píng)論 0 1
  • 一、什么是正則表達(dá)式 正則表達(dá)式,又稱正規(guī)表示法,是對(duì)字符串操作的一種邏輯公式。正則表達(dá)式可以檢測(cè)給定的字符串是否...
    Suger_森閱讀 393評(píng)論 0 0
  • 原文來(lái)自:http://www.admin10000.com/document/5944.html 一、什么是正則...
    xcp123閱讀 202評(píng)論 0 1

友情鏈接更多精彩內(nèi)容