国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

正則表達式實現與或非關系【推薦】

2020-03-16 20:51:22
字體:
來源:轉載
供稿:網友

寫一個正則表達式,要求匹配字符串同時滿足條件A和條件B

我們可以先寫兩個子表達式PatternA和PatternB,分別校驗條件A和條件B。然后結合成一個新的表達式

(?=PatternA)PatternB

例如,當在Windows Server上修改用戶密碼時,一般要求滿足以下要求:

1. 6到256個字符
2. 包括以下四類字符中的至少三類: 數字/小寫字母/大寫字母/其他字符
3. 其它無法用正則表達式校驗的規則(例如最短密碼修改時間)

我們就可以用以下正則表達式來校驗密碼的合法性(其中藍色和綠色部分分別為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]))^.*

•寫一個正則表達式,要求匹配字符串滿足條件A,但不可滿足條件B

我們可以先寫兩個子表達式PatternA和PatternB,分別校驗條件A和條件B。然后結合成一個新的表達式
(?!PatternB)PatternA

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

1. 2到15個字符。只能包括: 數字/小寫字母/大寫字母/減號
2. 不能全部為數字

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

^(?!^/d*$)([a-zA-Z0-9-]{2,15})$

•寫一個正則表達式,要求匹配字符串或者滿足條件A或者滿足條件B

我們可以先寫兩個子表達式PatternA和PatternB,分別校驗條件A和條件B。然后結合成一個新的表達式
(PatternA|PatternB)

例如在非必須填的電話號碼域中,用戶可以輸入一個合法的電話號碼,也可以留空

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

(^$|/d{7,16})

注意:行起始符(^),行終止符($)和非貪婪標志(?)在這里的使用非常重要。


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乌| 永济市| 上饶市| 东城区| 云浮市| 奎屯市| 兴义市| 准格尔旗| 连州市| 瑞金市| 嘉荫县| 虞城县| 宣威市| 宁强县| 彰化市| 沧源| 道真| 合江县| 油尖旺区| 普兰县| 获嘉县| 永德县| 京山县| 临高县| 康乐县| 台南市| 囊谦县| 青岛市| 阿合奇县| 贵州省| 微博| 汝阳县| 兴宁市| 元朗区| 大姚县| 盘锦市| 绿春县| 绥化市| 金乡县| 城口县| 盈江县|