正規表示式實現與或非關係

2021-07-24 14:27:17 字數 1044 閱讀 7193

我們可以先寫兩個子表示式patterna和patternb,分別校驗條件a和條件b。然後結合成乙個新的表示式

(?=patterna)patternb

例如,當在windows server上修改使用者密碼時,一般要求滿足以下要求:

6到256個字元

包括以下四類字元中的至少三類: 數字/小寫字母/大寫字母/其他字元

其它無法用正規表示式校驗的規則(例如最短密碼修改時間)

我們就可以用以下正規表示式來校驗密碼的合法性(其中藍色和綠色部分分別為patterna和patternb):

(?=^.$)((?=.*\d)(?=.*[a-z])(?=.*[a-z])|(?=.*\d)(?=.*[^a-za-z0-9])(?=.*[a-z])|(?=.*[^a-za-z0-9])(?=.*[a-z])(?=.*[a-z])|(?=.*\d)(?=.*[a-z])(?=.*[^a-za-z0-9]))^.*

我們可以先寫兩個子表示式patterna和patternb,分別校驗條件a和條件b。然後結合成乙個新的表示式

(?!patternb)patterna

例如,windows server的機器名一般要求滿足以下要求(比微軟官方要求有所簡化):

2到15個字元。

只能包括: 數字/小寫字母/大寫字母/減號

不能全部為數字

我們就可以用以下正規表示式來校驗機器名的合法性(其中藍色部分分別為patternb,綠色部分為patterna):

^(?!^\d*$)([a-za-z0-9-])$

我們可以先寫兩個子表示式patterna和patternb,分別校驗

條件a和條件b。然後結合成乙個新的表示式

(patterna|patternb)

例如在非必須填的**號碼域中,使用者可以輸入乙個合法的**號碼,也可以留空

我們就可以用以下正規表示式來校驗機器名的合法性(其中藍色部分分別為patternb,綠色部分為patterna):

(^$|\d)

注意:行起始符(^),行

終止符($)和非貪婪標誌(?)在這裡的使用非常重要。

正規表示式 ( ) 或 ( )

正規表示式在爬蟲中的應用,可以更好的取自己想要的資料,有些時候也可以應對那些反爬取的 後邊多乙個?表示懶惰模式。必須跟在 或者 後邊用 如 src 匹配結果是 src test.jpg width 60px height 80px 意思是從 往後匹配,直到最後乙個 匹配結束 懶惰模式正則 src 結...

正規表示式( ) 或 ( )

正規表示式在爬蟲中的應用,可以更好的取自己想要的資料,有些時候也可以應對那些反爬取的 後邊多乙個?表示懶惰模式。必須跟在 或者 後邊用 如 test.jpg width 60px height 80px 如果用正則匹配src中內容非懶惰模式匹配 src 匹配結果是 src 意思是從 往後匹配,直到最...

正規表示式 取反 非

原文 exp 匹配後面跟的不是exp的位置 例 acbca regex a 匹配結果 a b ca c 紅色豎線位置 匹配後邊不是a的位置 regex a wc 匹配結果 abcac 只匹配b後的c不匹配a後的c 文字 abc abcd abd若想選擇不是以abc開始的行。regex abc 推薦 ...