繼續(xù)分享Python正則表達(dá)式基礎(chǔ),今天給大家分享的正則表達(dá)式特殊符號(hào)是“[]”。中括號(hào)十分實(shí)用,其有特殊含義,其代表的意思是中括號(hào)中的字符只要滿足其中任意一個(gè)就可以。其用法一共有三種,分別對(duì)其進(jìn)行具體的代碼演示,在最后進(jìn)行總結(jié),具體的教程如下。
成都創(chuàng)新互聯(lián)公司擁有十多年成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)服務(wù),對(duì)于網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、app軟件開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、主機(jī)域名等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。1、如下圖所示,匹配模式為[abcd],在這里正則表達(dá)式代表的意思是字符串第一個(gè)字符是abcd四個(gè)字符中的任意一個(gè),然后后面的字符是“cpeng123”,如果滿足匹配條件,則輸出結(jié)果,如果不滿足,則不顯示任何結(jié)果,如下圖所示。
很顯然原始字符串的第一個(gè)字符是d,和匹配模式相接,所以輸出結(jié)果。
2、為了更好的加強(qiáng)理解,現(xiàn)在將原始字符串改為“acpeng123”,其他部分不做改動(dòng),如下圖所示。
可以看到匹配的結(jié)果是“acpeng123”,匹配成功。
3、為進(jìn)一步理解中括號(hào)的意思,現(xiàn)在將原始字符串改為“ecpeng123”,其他部分不做改動(dòng),如下圖所示。
此時(shí)可以看到?jīng)]有任何結(jié)果輸出,因?yàn)樵谥欣ㄌ?hào)中沒有對(duì)應(yīng)的匹配字符,滿足不了匹配要求,所以無任何輸出。
4、看下面一個(gè)例子,提取電話號(hào)碼,這個(gè)在實(shí)際應(yīng)用中十分常見。在這里介紹中括號(hào)的另外一種表達(dá)方式即[0-9],這個(gè)特殊字符代表的意思是數(shù)字0到9中的任意一個(gè)字符。下面的匹配模式'(1[34578][0-9]{9})'代表的意思是字符串以1開頭,然后第二個(gè)字符為3、4、5、7、8中任意一個(gè),之后的字符是0到9中的數(shù)字,但是限定為9次,也就是說電話號(hào)碼的長度為1+1+9=11位。如果滿足上面的匹配要求,就輸出成功,否則就不輸出任何的字符。
如上圖,很明顯原始字符串滿足匹配的要求,所以有輸出結(jié)果。
拓展知識(shí):[a-z]代表26個(gè)英文小寫字母;[A-Z]代表26個(gè)英文大寫字母。
5、為了進(jìn)一步加強(qiáng)理解,將原始字符串改為160開頭的號(hào)碼,然后進(jìn)行輸出,如下圖所示。
可以看到無任何輸出結(jié)果。
6、中括號(hào)的第三章用法是[^],在中括號(hào)中加入特殊字符“^”,表示非,取反的意思。舉個(gè)栗子,“[^1]”的意思是字符不等于1,下圖是代碼演示。
可以看到原始字符串與匹配模式'(1[34578][^1]{9})'匹配成功,因?yàn)閺牡诙€(gè)字符之后,字符串中就沒有1出現(xiàn),符合匹配規(guī)則。
即便是原始字符串中出現(xiàn)非數(shù)字的字符,只要不是1,也能夠匹配成功,如下圖所示。
7、為了加強(qiáng)理解,先將原始字符串中的號(hào)碼改為‘18042682515’,在字符串后邊加個(gè)1,然后匹配模式不改變,如下圖所示。
可以看到此時(shí)無任何輸出結(jié)果,因?yàn)樵甲址谐霈F(xiàn)了1,而匹配模式要求不能出現(xiàn)1,所以匹配不成功。
8、最后總結(jié)一下特殊字符中括號(hào)的用途。一、中括號(hào)中的任意一個(gè)字符,如[abcd],代表a、b、c、d這四個(gè)字符中的任意一個(gè)。
二、表示區(qū)間,如[0-9],代表數(shù)字0到9中的任意一個(gè)。同理[a-z],[A-Z],其代表的意思在上面有提及,在此就不再贅述了。
三、表示非或者取反,專有的表達(dá)式是[^],如匹配模式[^1]表示匹配的字符不為1。
四、中括號(hào)中的“.”,如匹配模式[.]或“*”,如匹配模式[*],就是純粹的代表“.”號(hào)和“*”號(hào),不再是代表特殊字符中代表的任意字符或出現(xiàn)多次的意思,這點(diǎn)需要特別注意。
中括號(hào)在模式匹配的過程中十分常用,希望小伙伴們都能夠好好理解和掌握。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。