雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

正則表達(dá)式

當(dāng)前位置:主頁(yè) > 網(wǎng)絡(luò)編程 > 正則表達(dá)式 >

正則表達(dá)式實(shí)現(xiàn)與或非關(guān)系【推薦】

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-11|欄目:正則表達(dá)式|點(diǎ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

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有