正則表達(dá)式實(shí)現(xiàn)與或非關(guān)系【推薦】
寫一個(gè)正則表達(dá)式,要求匹配字符串同時(shí)滿足條件A和條件B
我們可以先寫兩個(gè)子表達(dá)式PatternA和PatternB,分別校驗(yàn)條件A和條件B。然后結(jié)合成一個(gè)新的表達(dá)式
(?=PatternA)PatternB
例如,當(dāng)在Windows Server上修改用戶密碼時(shí),一般要求滿足以下要求:
1. 6到256個(gè)字符
2. 包括以下四類字符中的至少三類: 數(shù)字/小寫字母/大寫字母/其他字符
3. 其它無(wú)法用正則表達(dá)式校驗(yàn)的規(guī)則(例如最短密碼修改時(shí)間)
我們就可以用以下正則表達(dá)式來(lái)校驗(yàn)密碼的合法性(其中藍(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]))^.*
•寫一個(gè)正則表達(dá)式,要求匹配字符串滿足條件A,但不可滿足條件B
我們可以先寫兩個(gè)子表達(dá)式PatternA和PatternB,分別校驗(yàn)條件A和條件B。然后結(jié)合成一個(gè)新的表達(dá)式
(?!PatternB)PatternA
例如,Windows Server的機(jī)器名一般要求滿足以下要求(比微軟官方要求有所簡(jiǎn)化):
1. 2到15個(gè)字符。只能包括: 數(shù)字/小寫字母/大寫字母/減號(hào)
2. 不能全部為數(shù)字
我們就可以用以下正則表達(dá)式來(lái)校驗(yàn)機(jī)器名的合法性(其中藍(lán)色部分分別為PatternB,綠色部分為PatternA):
^(?!^\d*$)([a-zA-Z0-9-]{2,15})$
•寫一個(gè)正則表達(dá)式,要求匹配字符串或者滿足條件A或者滿足條件B
我們可以先寫兩個(gè)子表達(dá)式PatternA和PatternB,分別校驗(yàn)條件A和條件B。然后結(jié)合成一個(gè)新的表達(dá)式
(PatternA|PatternB)
例如在非必須填的電話號(hào)碼域中,用戶可以輸入一個(gè)合法的電話號(hào)碼,也可以留空
我們就可以用以下正則表達(dá)式來(lái)校驗(yàn)機(jī)器名的合法性(其中藍(lán)色部分分別為PatternB,綠色部分為PatternA):
(^$|\d{7,16})
注意:行起始符(^),行終止符($)和非貪婪標(biāo)志(?)在這里的使用非常重要。
上一篇:Python正則表達(dá)式中的re.S的作用詳解
欄 目:正則表達(dá)式
下一篇:正則表達(dá)式re.sub替換不完整的問(wèn)題及完整解決方案
本文標(biāo)題:正則表達(dá)式實(shí)現(xiàn)與或非關(guān)系【推薦】
本文地址:http://www.jygsgssxh.com/a1/zhengzebiaodashi/11221.html
您可能感興趣的文章
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)例
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python爬蟲正則表達(dá)式之處理?yè)Q行符
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方法
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11正則表達(dá)式實(shí)現(xiàn)添加、刪除、替換三
- 01-11正則表達(dá)式之匹配數(shù)字范圍
- 01-11python 用正則表達(dá)式篩選文本信息的實(shí)
- 01-11正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
- 01-11python爬蟲正則表達(dá)式之處理?yè)Q行符
- 01-11js正則表達(dá)式 匹配兩個(gè)特定字符間的
- 01-11正則表達(dá)式截取身份證號(hào)碼加密的方
- 01-11python正則表達(dá)式之對(duì)號(hào)入座篇
- 01-11MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典
- 01-11詳解正則表達(dá)式實(shí)現(xiàn)二代身份證號(hào)碼
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?


