正則表達(dá)式實現(xiàn)與或非關(guān)系【推薦】
寫一個正則表達(dá)式,要求匹配字符串同時滿足條件A和條件B
我們可以先寫兩個子表達(dá)式PatternA和PatternB,分別校驗條件A和條件B。然后結(jié)合成一個新的表達(dá)式
(?=PatternA)PatternB
例如,當(dāng)在Windows Server上修改用戶密碼時,一般要求滿足以下要求:
1. 6到256個字符
2. 包括以下四類字符中的至少三類: 數(shù)字/小寫字母/大寫字母/其他字符
3. 其它無法用正則表達(dá)式校驗的規(guī)則(例如最短密碼修改時間)
我們就可以用以下正則表達(dá)式來校驗密碼的合法性(其中藍(lán)色和綠色部分分別為PatternA和PatternB):
(?=^.{6,255}$)((?=.*\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]))^.*
•寫一個正則表達(dá)式,要求匹配字符串滿足條件A,但不可滿足條件B
我們可以先寫兩個子表達(dá)式PatternA和PatternB,分別校驗條件A和條件B。然后結(jié)合成一個新的表達(dá)式
(?!PatternB)PatternA
例如,Windows Server的機(jī)器名一般要求滿足以下要求(比微軟官方要求有所簡化):
1. 2到15個字符。只能包括: 數(shù)字/小寫字母/大寫字母/減號
2. 不能全部為數(shù)字
我們就可以用以下正則表達(dá)式來校驗機(jī)器名的合法性(其中藍(lán)色部分分別為PatternB,綠色部分為PatternA):
^(?!^\d*$)([a-zA-Z0-9-]{2,15})$
•寫一個正則表達(dá)式,要求匹配字符串或者滿足條件A或者滿足條件B
我們可以先寫兩個子表達(dá)式PatternA和PatternB,分別校驗條件A和條件B。然后結(jié)合成一個新的表達(dá)式
(PatternA|PatternB)
例如在非必須填的電話號碼域中,用戶可以輸入一個合法的電話號碼,也可以留空
我們就可以用以下正則表達(dá)式來校驗機(jī)器名的合法性(其中藍(lán)色部分分別為PatternB,綠色部分為PatternA):
(^$|\d{7,16})
注意:行起始符(^),行終止符($)和非貪婪標(biāo)志(?)在這里的使用非常重要。
相關(guān)文章
使用正則表達(dá)式去除所有html標(biāo)簽只保留文字
這篇文章主要介紹了使用正則表達(dá)式去除所有html標(biāo)簽只保留文字效果,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧2018-07-07JavaScript正則表達(dá)式驗證身份證號碼是否合法(兩種方法)
正則表達(dá)式(regular expression)是一個描述字符模式的對象。下面通過本篇文章給大家介紹js正則表達(dá)式驗證身份證號碼是否合法,需要的朋友可以參考下本篇文章2015-09-09正則表達(dá)式Regular Expression (RegExp)詳解
正則表達(dá)式,又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達(dá)式、規(guī)則表達(dá)式、常規(guī)表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE2015-11-11