我們可以先寫兩個子表示式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 推薦 ...