正則-零寬斷言

這里記錄下,我在初學(xué)時如何理解零寬斷言(初學(xué)時,沒人指導(dǎo)很容易想不明白)


1. 簡單的定義:一個<沒有寬度>位置,這個位置滿足一定條件<斷言>

2. 為了方便理解,看下面例子:

正則<用于密碼設(shè)置>:^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,20}$

  • 說明:匹配8~20位由0-9A-Za-z構(gòu)成的字符(必須包含數(shù)字和字母)

  • 下面解釋步驟(index是int表示匹配的下標(biāo)),從左到右:

  1. ^ 匹配開始(index = 0)

  2. (?![0-9]+$) 這是一個負向零寬斷言,不能以<全是數(shù)字和結(jié)尾>構(gòu)成結(jié)尾的字符,從index=0往后匹配,像123456789這樣的就不合法了,而像12345678a, abcdefg可以匹配

  3. (?![a-zA-Z]+$) 這是一個負向零寬斷言,不能以<字符和結(jié)尾>構(gòu)成結(jié)尾的字符,仍然從index=0往后匹配,零寬斷言的特點就是,匹配的位置不會被消費,index不會往后增加(滿足條件即可)

  4. [0-9A-Za-z]{8,20} 如果已經(jīng)滿足前面兩個零寬斷言,就說明從index=0開始到結(jié)束已經(jīng)滿足不全是(0-9),(a-zA-Z)的字符串了,這下再匹配index=0開始到結(jié)尾8~20位0-9A-Za-z

  5. $ 匹配結(jié)束

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

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

  • 正則表達式 \n\n\n 【5】正則表達式應(yīng)用——刪除空行 啟動EditPlus,打開待處理的文本類型文件。 ①、...
    黃花菜已涼閱讀 1,140評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位,可能是字母,數(shù)字,標(biāo)點符號,空格,換行符,漢字等...
    獅子挽歌閱讀 2,300評論 0 9
  • 轉(zhuǎn)自: JS正則表達式一條龍講解,從原理和語法到JS正則、ES6正則擴展,最后再到正則實踐思路 溫馨提示:文章很長...
    前端渣渣閱讀 1,917評論 1 32
  • 元字符 \b 代表著單詞的開頭或結(jié)尾,也就是單詞的分界處。雖然通常英文的單詞是有空格,標(biāo)點符號揮著換行來分割的,但...
    onzing閱讀 696評論 0 0

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